Builder rsyslog-solaris10-i386 Build #2015
Results:
Failed
SourceStamp:
Project | rsyslog |
Repository | https://github.com/rsyslog/rsyslog.git |
Branch | master |
Revision | e96d032a532dd5b3a88345b68a14f7fe2b4b07d9 |
Changes | 5 changes |
BuildSlave:
unstable10xReason:
The SingleBranchScheduler scheduler named 'schedule-rsyslog-solaris10-i386' triggered this build
Steps and Logfiles:
Build Properties:
Name | Value | Source |
---|---|---|
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:
Name | Label | Value |
---|
Responsible Users:
- Rainer Gerhardsrgerhards@adiscon.com
Timing:
Start | Wed Jul 9 16:32:21 2025 |
End | Wed Jul 9 16:33:24 2025 |
Elapsed | 1 mins, 3 secs |
All Changes:
:
Change #238782
Category rsyslog Changed by Rainer Gerhards <rgerhards @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
Change #238783
Category rsyslog Changed by Rainer Gerhards <rgerhards @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
Change #238784
Category rsyslog Changed by Rainer Gerhards <rgerhards @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
Change #238785
Category rsyslog Changed by Rainer Gerhards <rgerhards @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
Change #238786
Category rsyslog Changed by Rainer Gerhards <rgerhards @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