https://bugs.kde.org/show_bug.cgi?id=423963

--- Comment #12 from Christoph Cullmann <cullm...@kde.org> ---
For better testing, I added a minimal Qt 6 example.

The tar contains the CMakeLists.txt + test.cpp.

(and an example compile against the system Qt 6.0.2 of Manjaro)

If I use the system 3.16.1 valgrind of Manjaro I get:

valgrind ./test
==490703== Memcheck, a memory error detector
==490703== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==490703== Using Valgrind-3.16.1 and LibVEX; rerun with -h for copyright info
==490703== Command: ./test
==490703== 
==490703== Syscall param waitid(infop) points to unaddressable byte(s)
==490703==    at 0x5274A9D: syscall (in /usr/lib/libc-2.33.so)
==490703==    by 0x4BDF99F: ??? (in /usr/lib/libQt6Core.so.6.0.2)
==490703==    by 0x4BC3BB3: ??? (in /usr/lib/libQt6Core.so.6.0.2)
==490703==    by 0x1092A5: main (in /home/cullmann/test/test)
==490703==  Address 0x0 is not stack'd, malloc'd or (recently) free'd
==490703== 
==490711== Warning: invalid file descriptor 4354 in syscall clone()

valgrind: m_syswrap/syswrap-main.c:1957 (vgPlain_client_syscall): Assertion '0
== (sci->flags & ~(SfMayBlock | SfPostOnFail | SfPollAfter))' failed.

host stacktrace:
==490711==    at 0x58041B2A: show_sched_status_wrk (m_libcassert.c:406)
==490711==    by 0x58041C47: report_and_quit (m_libcassert.c:477)
==490711==    by 0x58041DD7: vgPlain_assert_fail (m_libcassert.c:543)
==490711==    by 0x5809AB4F: vgPlain_client_syscall (syswrap-main.c:1980)
==490711==    by 0x5809617A: handle_syscall (scheduler.c:1208)
==490711==    by 0x58098177: vgPlain_scheduler (scheduler.c:1526)
==490711==    by 0x580E38D0: thread_wrapper (syswrap-linux.c:101)
==490711==    by 0x580E38D0: run_a_thread_NORETURN (syswrap-linux.c:154)

sched status:
  running_tid=1

Thread 1: status = VgTs_Runnable syscall 56 (lwpid 490711)
==490711==    at 0x5274A9D: syscall (in /usr/lib/libc-2.33.so)
==490711==    by 0x4BDF91D: ??? (in /usr/lib/libQt6Core.so.6.0.2)
==490711==    by 0x4BC3BB3: ??? (in /usr/lib/libQt6Core.so.6.0.2)
==490711==    by 0x1092A5: main (in /home/cullmann/test/test)
client stack range: [0x1FFEFF6000 0x1FFF000FFF] client SP: 0x1FFEFFF988
valgrind stack range: [0x1002BAA000 0x1002CA9FFF] top usage: 13424 of 1048576


Note: see also the FAQ in the source distribution.
It contains workarounds to several common problems.
In particular, if Valgrind aborted or crashed after
identifying problems in your program, there's a good chance
that fixing those problems will prevent Valgrind aborting or
crashing, especially if it happened in m_mallocfree.c.

If that doesn't help, please report this bug to: www.valgrind.org

In the bug report, send all the above text, the valgrind
version, and what OS and version you are using.  Thanks.









If use a self-compiled 3.16.1 or 3.17.0 valgrind without any patches:

/tmp/testet/bin/valgrind ./test
==492054== Memcheck, a memory error detector
==492054== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==492054== Using Valgrind-3.16.1 and LibVEX; rerun with -h for copyright info
==492054== Command: ./test
==492054== 
==492054== Syscall param waitid(infop) points to unaddressable byte(s)
==492054==    at 0x5274A9D: syscall (in /usr/lib/libc-2.33.so)
==492054==    by 0x4BDF99F: ??? (in /usr/lib/libQt6Core.so.6.0.2)
==492054==    by 0x4BC3BB3: ??? (in /usr/lib/libQt6Core.so.6.0.2)
==492054==    by 0x1092A5: main (in /home/cullmann/test/test)
==492054==  Address 0x0 is not stack'd, malloc'd or (recently) free'd
==492054== 
==492054== 
==492054== HEAP SUMMARY:
==492054==     in use at exit: 19,244 bytes in 21 blocks
==492054==   total heap usage: 213 allocs, 192 frees, 152,055 bytes allocated

and

/makefactory/usr/heute/144702/release/linux64/bin/valgrind ./test
==491169== Memcheck, a memory error detector
==491169== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==491169== Using Valgrind-3.17.0 and LibVEX; rerun with -h for copyright info
==491169== Command: ./test
==491169== 
==491169== Syscall param waitid(infop) points to unaddressable byte(s)
==491169==    at 0x5279A9D: syscall (in /usr/lib/libc-2.33.so)
==491169==    by 0x4BE499F: ??? (in /usr/lib/libQt6Core.so.6.0.2)
==491169==    by 0x4BC8BB3: ??? (in /usr/lib/libQt6Core.so.6.0.2)
==491169==    by 0x1092A5: main (in /home/cullmann/test/test)
==491169==  Address 0x0 is not stack'd, malloc'd or (recently) free'd
==491169== 
==491169== 
==491169== HEAP SUMMARY:
==491169==     in use at exit: 19,244 bytes in 21 blocks
==491169==   total heap usage: 213 allocs, 192 frees, 152,055 bytes allocated
==491169== 




Strange enough, I don't run in the error I have seen below with the Qt 6.1
build we have.

Perhaps our 6.1 build uses a different code path in the forkfd stuff?

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to