DescriptionRevert "Revert 235213 "android: forwader2: Simplify Forwarder implementa...""
This relands digit@'s CL that completely reworks the traffic forwarding logic
and that should guarantee in particular that select() never blocks without a
good reason (i.e. that we are not leaking Forwarder instances due to the fact
that their internal thread would be blocked on select()).
The initial problem with r235213 was only the use of PipeNotifier which added
two file descriptors for each Forwarder instance (in addition to the two
sockets the Forwarder instance operates on). We were exceeding the file
descriptor limit (1024) on the intl_ko_th_vi Telemetry page set which is not
surprising since Chrome easily keeps 256 sockets around in its socket pool.
Therefore this change simply removes the PipeNotifier since we were not (yet)
using it anyway.
The initial problem was reproduced and the fix was tested as well with:
tools/perf/run_measurement -v --browser=android-chromium-testshell \
--show-stdout page_cycler tools/perf/page_sets/intl_ko_th_vi.json
Note that a next step would be to have all the Forwarder instances operate on a
common thread owned by DeviceListener so that we don't end up with 256 threads.
BUG=332403
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=245144
Patch Set 1 : Original CL #Patch Set 2 : Fix original CL by removing usage of PipeNotifier #
Total comments: 3
Patch Set 3 : Add DCHECK() in SetPeer() #
Messages
Total messages: 11 (0 generated)
|