mdounin at mdounin.ru
Tue Sep 11 10:32:58 UTC 2012
On Tue, Sep 11, 2012 at 12:16:55PM +0800, Joshua Zhu wrote:
> > And the same thing may even happen without any changes in
> > configure arguments - e.g. if OS was upgraded and nginx
> > now detects some new feature it want to use.
> It's not a problem caused by dynamically loaded modules. It exists
> even in statically compiled nginx. The accept4() problem (yeah it has
> been fixed) is an example :)
Problems with nonexistent syscalls is completely different thing:
1) By upgrading hosts in correct order (i.e. build host last) you
just don't see any problems.
2) If there is no syscall at all on the host you are running,
you'll see ENOSYS returned and it's up to your code to handle it
(either just fail or fallback to something else).
This is because ABI is actually provided by OS here. And
it's completely different from "no ABI" case where you'll just get
random unexpected behaviour and segfaults if you are lucky or
just corrupted data if you aren't.
More information about the nginx