Home - Waterfall Grid T-Grid Console Builders Recent Builds Buildslaves Changesources - JSON API - About

Builder rsyslog-solaris10-i386 Build #2015

Results:

Failed

SourceStamp:

Projectrsyslog
Repositoryhttps://github.com/rsyslog/rsyslog.git
Branchmaster
Revisione96d032a532dd5b3a88345b68a14f7fe2b4b07d9
Changes5 changes

BuildSlave:

unstable10x

Reason:

The SingleBranchScheduler scheduler named 'schedule-rsyslog-solaris10-i386' triggered this build

Steps and Logfiles:

  1. git updating ( 1 mins, 3 secs )
    1. stdio
  2. shell  
    1. - no logs -
  3. shell_1  
    1. - no logs -
  4. shell_2  
    1. - no logs -
  5. shell_3  
    1. - no logs -

Build Properties:

NameValueSource
branch master Build
builddir /export/home/buildbot/slave/rsyslog-solaris10-i386 slave
buildername rsyslog-solaris10-i386 Builder
buildnumber 2015 Build
codebase Build
project rsyslog Build
repository https://github.com/rsyslog/rsyslog.git Build
revision e96d032a532dd5b3a88345b68a14f7fe2b4b07d9 Build
scheduler schedule-rsyslog-solaris10-i386 Scheduler
slavename unstable10x BuildSlave
workdir /export/home/buildbot/slave/rsyslog-solaris10-i386 slave (deprecated)

Forced Build Properties:

NameLabelValue

Responsible Users:

  1. Rainer Gerhards

Timing:

StartWed Jul 9 16:32:21 2025
EndWed Jul 9 16:33:24 2025
Elapsed1 mins, 3 secs

All Changes:

:

  1. Change #238782

    Category rsyslog
    Changed by Rainer Gerhards <rgerhardsohnoyoudont@adiscon.com>
    Changed at Sun 06 Jul 2025 14:58:03
    Repository https://github.com/rsyslog/rsyslog.git
    Project rsyslog
    Branch master
    Revision c5cd7e57c4f82bd05f71d2f8169c3e8a4399e0db

    Comments

    imtcp: prevent double-enqueue of descriptors via inQueue flag
    This patch adds an inQueue flag with its own mutex to each
    tcpsrv_io_descr_t structure. The flag prevents multiple worker threads
    from processing the same descriptor at the same time.
    
    The change was motivated by segmentation faults reported in production
    systems after commit ad1fd21, which introduced a worker thread pool to
    imtcp. We could not reproduce the faults ourselves, but code analysis
    suggests several race conditions may exist.
    
    In particular:
    
    - epoll_wait may return the same descriptor multiple times. This is not
      expected, as we use EPOLLONESHOT. However, if a thread does not clear
      or re-arm the event quickly enough, or in edge cases involving race
      conditions and rapid I/O activity, duplicate delivery may still occur.
    
    - If a descriptor is enqueued more than once, multiple threads may
      process and free it in parallel, causing use-after-free errors.
    
    - closeSess releases the session mutex before destroying the session and
      descriptor. A second thread might still be waiting to acquire the
      mutex and access the now-freed memory.
    
    - shutdown is unordered: stopWrkrPool waits for threads to join, but the
      work queue may still contain descriptors that will be processed after
      their memory has been freed.
    
    - pending epoll events for a socket may still be processed after
      epoll_ctl(..., DEL) was called, leading to access to invalid memory.
    
    The patch:
    
    - Adds an inQueue flag to each descriptor and a mutex to protect it.
    - Prevents enqueueWork from queuing a descriptor already in queue.
    - Clears the flag when dequeueing the descriptor.
    - Initializes and destroys the new mutex at listener startup/cleanup.
    
    While unverified, we believe this patch is a safe and helpful change.
    It may fix the reported crashes and in general improves correctness.
    
    The analysis and draft of this patch were created with help from a
    Codex-based AI agent. Final review and edits were done by a human.
    
    Performance will be evaluated during PR review.

    Changed files

    • runtime/tcpsrv.c
    • runtime/tcpsrv.h
  2. Change #238783

    Category rsyslog
    Changed by Rainer Gerhards <rgerhardsohnoyoudont@adiscon.com>
    Changed at Sun 06 Jul 2025 15:17:15
    Repository https://github.com/rsyslog/rsyslog.git
    Project rsyslog
    Branch master
    Revision 97c2ac0db3b15ad2b222b71533e96a21d2295b42

    Comments

    imkmsg fix: Handle EAGAIN/EWOULDBLOCK check portably
    On some systems, EAGAIN and EWOULDBLOCK are defined to the same
    value, causing a `-Wlogical-op` warning for the redundant logical
    'or' in the errno check.
    
    While portable code must check for both cases, this warning is
    unwanted.
    
    This change uses a preprocessor directive to conditionally compile
    the check for `errno == EWOULDBLOCK` only on platforms where its value
    differs from EAGAIN. This silences the warning without affecting
    portability.

    Changed files

    • contrib/imkmsg/kmsg.c
  3. Change #238784

    Category rsyslog
    Changed by Rainer Gerhards <rgerhardsohnoyoudont@adiscon.com>
    Changed at Wed 09 Jul 2025 16:20:53
    Repository https://github.com/rsyslog/rsyslog.git
    Project rsyslog
    Branch master
    Revision 561ea6bea35e45157ad2fd675c95f533579b7639

    Comments

    Merge pull request #5749 from rgerhards/imtcp-segfault
    imtcp: prevent double-enqueue of descriptors via inQueue flag

    Changed files

    • no files
  4. Change #238785

    Category rsyslog
    Changed by Rainer Gerhards <rgerhardsohnoyoudont@adiscon.com>
    Changed at Wed 09 Jul 2025 16:21:18
    Repository https://github.com/rsyslog/rsyslog.git
    Project rsyslog
    Branch master
    Revision 690b6d34f117afda1a04a16e7f297de72b779e3a

    Comments

    Merge pull request #5750 from rgerhards/kmsg
    imkmsg fix: Handle EAGAIN/EWOULDBLOCK check portably

    Changed files

    • no files
  5. Change #238786

    Category rsyslog
    Changed by Rainer Gerhards <rgerhardsohnoyoudont@adiscon.com>
    Changed at Wed 09 Jul 2025 16:28:58
    Repository https://github.com/rsyslog/rsyslog.git
    Project rsyslog
    Branch master
    Revision e96d032a532dd5b3a88345b68a14f7fe2b4b07d9

    Comments

    maintain ChangeLog

    Changed files

    • ChangeLog