Gergely Nagy <alger...@balabit.hu> writes: > This is a known problem in the underlying ivykis library, and can be > fixed by applying a patch to lib/ivykis, something along these lines: > > > https://github.com/buytenh/ivykis/commit/89f67f97477aeba24aebfc58ae1a17e5bea69724.patch > > It will need some minor changes, as the ivykis included with 3.3.5 is a > bit different from upstream.
The attached patch should fix the eventfd2 errors, and make the code properly fall back to whatever it normally falls back to. >> I then can see syslog-ng master-process spawining childs, which segfault >> immidiatly: >> http://paste.debian.net/239439/ > > This sounds like another issue, also in ivykis, but a race condition: > > > https://github.com/buytenh/ivykis/commit/144b88cbe4a04d53acbf4525d06cc1860571d36f.patch > > This should apply reasonably cleanly to lib/ivykis aswell. Turns out, this doesn't apply cleanly, or at all. It is not needed either, as the code in syslog-ng's ivykis fork does not suffer from this problem. The crash is likely due to something else, perhaps even related to the eventfd fix. I have not been able to reproduce the crash in the wheezy chroot on gabrielli, unfortunately. I'm trying to figure something out using valgrind on x86, perhaps that'll help. Meanwhile, if I could get access to the core file that was generated, that may help, or at least aid me in figuring out how to reproduce the problem on my own. -- |8]
--- iv_event_raw.c.orig 2013-03-03 17:11:37.548279231 +0100 +++ iv_event_raw.c 2013-03-03 17:11:00.664356074 +0100 @@ -91,7 +91,7 @@ ret = eventfd2(0, EFD_NONBLOCK | EFD_CLOEXEC); if (ret < 0) { - if (errno != ENOSYS) { + if (errno != ENOSYS && errno != EINVAL) { perror("eventfd2"); return -1; }