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 <[email protected]>
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 <[email protected]>
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
_______________________________________________
pulseaudio-discuss mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss