12.06.2016 21:39, Alexander E. Patrakov пиÑ?еÑ?: > I have spent more time running pulseaudio (master + Tanu's patches) > under valgrind today. > > This set of warnings has already been reported, and they appear every > time PulseAudio is started: > > ==15442== Conditional jump or move depends on uninitialised value(s) > ==15442== at 0x5C91288: shm_attach (shm.c:380) > ==15442== by 0x5C91B68: pa_shm_cleanup (shm.c:453) > ==15442== by 0x5C91D4C: sharedmem_create (shm.c:150) > ==15442== by 0x5C91D4C: pa_shm_create_rw (shm.c:239) > ==15442== by 0x5C82193: pa_mempool_new (memblock.c:848) > ==15442== by 0xF245FF7: setup_srbchannel (protocol-native.c:2634) > ==15442== by 0xF245FF7: command_auth (protocol-native.c:2864) > ==15442== by 0x5C8989E: pa_pdispatch_run (pdispatch.c:346) > ==15442== by 0xF2486C4: pstream_packet_callback (protocol-native.c:4989) > ==15442== by 0x5C8C216: do_read (pstream.c:987) > ==15442== by 0x5C8EEF3: do_pstream_read_write (pstream.c:227) > ==15442== by 0x510040B: dispatch_pollfds (mainloop.c:655) > ==15442== by 0x510040B: pa_mainloop_dispatch (mainloop.c:898) > ==15442== by 0x510080B: pa_mainloop_iterate (mainloop.c:929) > ==15442== by 0x51008AF: pa_mainloop_run (mainloop.c:944) > ==15442== > ==15442== Conditional jump or move depends on uninitialised value(s) > ==15442== at 0x5C8C91D: pa_cmsg_ancil_data_close_fds (pstream.c:193) > ==15442== by 0x5C8DE57: do_write (pstream.c:759) > ==15442== by 0x5C8EEB7: do_pstream_read_write (pstream.c:233) > ==15442== by 0x510040B: dispatch_pollfds (mainloop.c:655) > ==15442== by 0x510040B: pa_mainloop_dispatch (mainloop.c:898) > ==15442== by 0x510080B: pa_mainloop_iterate (mainloop.c:929) > ==15442== by 0x51008AF: pa_mainloop_run (mainloop.c:944) > ==15442== by 0x406E3B: main (main.c:1141) > ==15442== > ==15442== Conditional jump or move depends on uninitialised value(s) > ==15442== at 0x5C8C91D: pa_cmsg_ancil_data_close_fds (pstream.c:193) > ==15442== by 0x5C8CA90: item_free (pstream.c:371) > ==15442== by 0x5C8DDC2: do_write (pstream.c:775) > ==15442== by 0x5C8EEB7: do_pstream_read_write (pstream.c:233) > ==15442== by 0x510040B: dispatch_pollfds (mainloop.c:655) > ==15442== by 0x510040B: pa_mainloop_dispatch (mainloop.c:898) > ==15442== by 0x510080B: pa_mainloop_iterate (mainloop.c:929) > ==15442== by 0x51008AF: pa_mainloop_run (mainloop.c:944) > ==15442== by 0x406E3B: main (main.c:1141) Bisected these (kind-of). If we use "exactly zero valgrind warnings" as the definition of good, then the first bad commit is: commit 73e86b1cb164b1c37b27238b529879a4a2d9f24c Author: Ahmed S. Darwish <darwish.07 at gmail.com> Date: Sun Mar 13 01:04:18 2016 +0200 pulsecore: Introduce memfd support Memfd is a simple memory sharing mechanism, added by the systemd/kdbus developers, to share pages between processes in an anonymous, no global registry needed, no mount-point required, relatively secure, manner. This patch introduces the necessary building blocks for using memfd shared memory transfers in PulseAudio. Memfd support shall also help us in laying out the necessary (but not yet sufficient) groundwork for application sandboxing, protecting PA from its clients, and protecting clients data from each other. We plan to exclusively use memfds, instead of POSIX SHM, on the way forward. Signed-off-by: Ahmed S. Darwish <darwish.07 at gmail.com> However, during the bisect, there were points with 0, 1, 2, and all 3 valgrind warnings, which means we may have 3 separate issues here. Ahmed, could you please look at the issues? Maybe the difference is that I am running valgrind as follows: valgrind --trace-children=yes ./src/pulseaudio -- Alexander E. Patrakov