This is 100% reproducable for me on the Nexus 4 (strangely not so much on the Galaxy Nexus). At latest after 3 hours of uptime unity8 goes crazy with around 70% CPU usage.
Here's the strace output of unity8 while this happens.
This block, here listed twice, is repeated over and over in full speed. 2 minutes of stracing created 16M of output repeating this block.
Looks like unity tries to read form a file descriptor (3) which is not available any more.
lrwx------ 1 phablet phablet 64 Jul 28 10:27 /proc/690/fd/3 -> anon_inode:[eventfd]
Attaching gdb and interrupting it does not give any thing useful.
This is 100% reproducable for me on the Nexus 4 (strangely not so much on the Galaxy Nexus). At latest after 3 hours of uptime unity8 goes crazy with around 70% CPU usage.
Here's the strace output of unity8 while this happens.
read(3, "\2\0\0\0\0\0\0\0", 16) = 8 OP_PRIVATE, 1, 1, 0x2c4818, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1 CLOCK_MONOTONIC , {15457, 541909444}) = 0 CLOCK_MONOTONIC , {15457, 542214648}) = 0 OP_PRIVATE, 1, 1, 0x2c4818, {FUTEX_OP_SET, 0, FUTEX_OP_CMP_GT, 1}) = 1 CLOCK_MONOTONIC , {15457, 564097757}) = 0 CLOCK_MONOTONIC , {15457, 564494521}) = 0
futex(0x2c481c, FUTEX_WAKE_
futex(0x2c4800, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x2c4644, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x2c481c, FUTEX_WAIT_PRIVATE, 1469943, NULL) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x2c4800, FUTEX_WAKE_PRIVATE, 1) = 0
clock_gettime(
clock_gettime(
poll([{fd=3, events=POLLIN}, {fd=22, events=POLLIN}, {fd=23, events=POLLIN}, {fd=34, events=POLLIN}, {fd=35, events=POLLIN}, {fd=45, events=POLLIN}, {fd=43, events=POLLIN}], 7, -1) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\2\0\0\0\0\0\0\0", 16) = 8
futex(0x2c481c, FUTEX_WAKE_
futex(0x2c4800, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x2c4644, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x2c4800, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x2c4818, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x2c481c, FUTEX_WAIT_PRIVATE, 1469947, NULL) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x2c4800, FUTEX_WAKE_PRIVATE, 1) = 0
clock_gettime(
clock_gettime(
poll([{fd=3, events=POLLIN}, {fd=22, events=POLLIN}, {fd=23, events=POLLIN}, {fd=34, events=POLLIN}, {fd=35, events=POLLIN}, {fd=45, events=POLLIN}, {fd=43, events=POLLIN}], 7, -1) = 1 ([{fd=3, revents=POLLIN}])
This block, here listed twice, is repeated over and over in full speed. 2 minutes of stracing created 16M of output repeating this block.
Looks like unity tries to read form a file descriptor (3) which is not available any more. [eventfd]
lrwx------ 1 phablet phablet 64 Jul 28 10:27 /proc/690/fd/3 -> anon_inode:
Attaching gdb and interrupting it does not give any thing useful.
Any other hints how to debug this further?