platform_system_core/debuggerd/tombstoned
Narayan Kamath c2e98f6340 tombstoned: Fix calls to evconnlistener_new.
The order of arguments is wrong - we're passing flags=static_cast<unsigned>(-1)
and backlog=LEV_OPT_CLOSE_ON_FREE (which is 2).

On versions of libevent prior to 2.1.8, this ends up accidentally setting
OPT_LEAVE_SOCKETS_BLOCKING, OPT_CLOSE_ON_EXEC, OPT_REUSABLE and OPT_THREADSAFE
and limiting our backlog to two. These unintentional changes are relatively
benign; we never make our sockets block, we never exec, we never reuse
sockets and the additional locking overhead should be negligible. The
backlog of two might be a problem in theory, but there haven't been any
reports of issues caused by it.

Things get worse on 2.1.8 - that version introduces several new flags,
one of which is OPT_DISABLED. This disables the new listener by default,
which means that our event loop returns early because it has no active listeners
for any of its events.

Bug: 64543673
Test: Manual.

Change-Id: I9954bc7fe1af761de1a950d935dd2e6ce7e2c5f5
2017-09-13 14:15:57 +01:00
..
include/tombstoned tombstoned: allow intercepts for java traces. 2017-05-31 10:35:32 +01:00
intercept_manager.cpp tombstoned: allow intercepts for java traces. 2017-05-31 10:35:32 +01:00
intercept_manager.h tombstoned: allow intercepts for java traces. 2017-05-31 10:35:32 +01:00
tombstoned.cpp tombstoned: Fix calls to evconnlistener_new. 2017-09-13 14:15:57 +01:00
tombstoned.rc tombstoned: Support java trace dumps. 2017-05-18 12:01:14 +00:00
tombstoned_client.cpp tombstoned: allow intercepts for java traces. 2017-05-31 10:35:32 +01:00