After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 623586 - gst/tagsetter check fails
gst/tagsetter check fails
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gstreamer (core)
git master
Other Linux
: High critical
: 0.10.30
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2010-07-05 11:12 UTC by Götz Waschk
Modified: 2010-07-06 10:22 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
debug output of the check (91.37 KB, text/plain)
2010-07-05 11:17 UTC, Götz Waschk
  Details
checks: rewrite gsttagsetter test to use fewer g_usleep() (2.72 KB, patch)
2010-07-06 09:52 UTC, Tim-Philipp Müller
committed Details | Review

Description Götz Waschk 2010-07-05 11:12:31 UTC
This is on Mandriva Cooker 2010.1 x86_64. I'm trying to build the 0.10.29.3 prerelease:

Running suite(s): GstTagSetter
75%: Checks: 4, Failures: 0, Errors: 1
gst/gsttagsetter.c:299:E:general:test_threads:0: (after this point) Test timeout expired
FAIL: gst/gsttagsetter
Comment 1 Götz Waschk 2010-07-05 11:17:16 UTC
Created attachment 165266 [details]
debug output of the check
Comment 2 Tim-Philipp Müller 2010-07-05 14:01:29 UTC
Is this easy to reproduce for you? I've run this test for multiple hours now (make gst/gsttagsetter.forever) and not gotten a single failure.

Could you provide a 'thread apply all bt' stack trace from when it hangs?  (make gst/gsttagsetter.gdb in tests/check)
Comment 3 Götz Waschk 2010-07-05 14:04:37 UTC
I can reproduce this bug all the time.

Here is the gdb output:

Thread 1 (Thread 0x2aaaacea9900 (LWP 28938))

  • #0 pthread_join
    from /lib64/libpthread.so.0
  • #1 g_thread_join_posix_impl
    at gthread-posix.c line 385
  • #2 IA__g_thread_join
    at gthread.c line 2038
  • #3 test_threads
    at gst/gsttagsetter.c line 318
  • #4 tcase_run_tfun_nofork
    at check_run.c line 314
  • #5 srunner_iterate_tcase_tfuns
  • #6 srunner_run_tcase
    at check_run.c line 302
  • #7 srunner_iterate_suites
    at check_run.c line 150
  • #8 srunner_run_all
    at check_run.c line 561
  • #9 gst_check_run_suite
    at gstcheck.c line 587
  • #10 main
    at gst/gsttagsetter.c line 338

Comment 4 Tim-Philipp Müller 2010-07-05 16:50:24 UTC
What scheduler is being used on that system? Is there a lot of other load?

This test finishes in less than a second for everyone I know who's tried it, whether on a fast multi-core system or a slow single-core VIA C5. And the timeout is ca. 20 seconds.
Comment 5 Götz Waschk 2010-07-05 20:51:39 UTC
I don't know the scheduler. There is no other load on that system. The check finishes (and fails) after 4 seconds.
Comment 6 Sebastian Dröge (slomo) 2010-07-06 07:37:59 UTC
The same seems to happen on the Debian and Ubuntu build servers, e.g.

https://buildd.debian.org/fetch.cgi?pkg=gstreamer0.10&arch=ia64&ver=0.10.29.3-1&stamp=1277901834&file=log&as=raw

I can't reproduce this unfortunately
Comment 7 Götz Waschk 2010-07-06 07:45:14 UTC
FYI, it does not happen on a 32 bit Mandriva machine, only on x86_64.
Comment 8 Tim-Philipp Müller 2010-07-06 09:52:59 UTC
Created attachment 165341 [details] [review]
checks: rewrite gsttagsetter test to use fewer g_usleep() 

Does this work better?
Comment 9 Götz Waschk 2010-07-06 10:07:25 UTC
With this patch, the  test passes.
Comment 10 Tim-Philipp Müller 2010-07-06 10:21:51 UTC
Ok, let's use that then. Thanks for the bug report and testing.


commit a877aefebd9148045865a9b5605197410893c671
Author: Tim-Philipp Müller <tim.muller@collabora.co.uk>
Date:   Tue Jul 6 10:48:27 2010 +0100

    checks: rewrite gsttagsetter test to use fewer g_usleep()
    
    Something about that seems to interact badly with some schedulers,
    so do things differently.
    
    Fixes #623469.