Sat 18 Dec 2010 04:35:04 PM UTC, comment #2:
I was able to reproduce it, by running the test in a loop until it failed. Had to ask valgrind to report for childs too, to get useful information available. Here is the dump.
% while ionice -c3 nice valgrind --trace-children=yes utilities/gprocessor testsuite/swfdec/src/test/trace/movieclip-version-8.swf -r11 -f10 -v -d -1; do sleep 5; done
==15567== Memcheck, a memory error detector
==15567== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al.
==15567== Using Valgrind-3.6.0.SVN-Debian and LibVEX; rerun with -h for copyright info
==15567== Command: utilities/gprocessor testsuite/swfdec/src/test/trace/movieclip-version-8.swf -r11 -f10 -v -d -1
==15567==
==15574==
==15574== HEAP SUMMARY:
==15574== in use at exit: 0 bytes in 0 blocks
==15574== total heap usage: 0 allocs, 0 frees, 0 bytes allocated
==15574==
==15574== All heap blocks were freed -- no leaks are possible
==15574==
==15574== For counts of detected and suppressed errors, rerun with: -v
==15574== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 16 from 7)
==15570==
==15570== HEAP SUMMARY:
==15570== in use at exit: 0 bytes in 0 blocks
==15570== total heap usage: 0 allocs, 0 frees, 0 bytes allocated
==15570==
==15570== All heap blocks were freed -- no leaks are possible
==15570==
==15570== For counts of detected and suppressed errors, rerun with: -v
==15570== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 16 from 7)
==15575==
==15575== HEAP SUMMARY:
==15575== in use at exit: 0 bytes in 0 blocks
==15575== total heap usage: 0 allocs, 0 frees, 0 bytes allocated
==15575==
==15575== All heap blocks were freed -- no leaks are possible
==15575==
==15575== For counts of detected and suppressed errors, rerun with: -v
==15575== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 16 from 7)
==15576==
==15576== HEAP SUMMARY:
==15576== in use at exit: 0 bytes in 0 blocks
==15576== total heap usage: 0 allocs, 0 frees, 0 bytes allocated
==15576==
==15576== All heap blocks were freed -- no leaks are possible
==15576==
==15576== For counts of detected and suppressed errors, rerun with: -v
==15576== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 16 from 7)
==15579== Memcheck, a memory error detector
==15579== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al.
==15579== Using Valgrind-3.6.0.SVN-Debian and LibVEX; rerun with -h for copyright info
==15579== Command: /bin/sed -e 1s/^X// -e s%/[^/]*$%%
==15579==
==15578==
==15578== HEAP SUMMARY:
==15578== in use at exit: 0 bytes in 0 blocks
==15578== total heap usage: 0 allocs, 0 frees, 0 bytes allocated
==15578==
==15578== All heap blocks were freed -- no leaks are possible
==15578==
==15578== For counts of detected and suppressed errors, rerun with: -v
==15578== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 16 from 7)
==15579==
==15579== HEAP SUMMARY:
==15579== in use at exit: 11,947 bytes in 94 blocks
==15579== total heap usage: 137 allocs, 43 frees, 15,829 bytes allocated
==15579==
==15579== LEAK SUMMARY:
==15579== definitely lost: 2 bytes in 2 blocks
==15579== indirectly lost: 0 bytes in 0 blocks
==15579== possibly lost: 0 bytes in 0 blocks
==15579== still reachable: 11,945 bytes in 92 blocks
==15579== suppressed: 0 bytes in 0 blocks
==15579== Rerun with --leak-check=full to see details of leaked memory
==15579==
==15579== For counts of detected and suppressed errors, rerun with: -v
==15579== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 16 from 7)
==15577==
==15577== HEAP SUMMARY:
==15577== in use at exit: 0 bytes in 0 blocks
==15577== total heap usage: 0 allocs, 0 frees, 0 bytes allocated
==15577==
==15577== All heap blocks were freed -- no leaks are possible
==15577==
==15577== For counts of detected and suppressed errors, rerun with: -v
==15577== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 16 from 7)
==15582== Memcheck, a memory error detector
==15582== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al.
==15582== Using Valgrind-3.6.0.SVN-Debian and LibVEX; rerun with -h for copyright info
==15582== Command: /bin/sed -n s/.*-\>\ //p
==15582==
==15581== Memcheck, a memory error detector
==15581== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al.
==15581== Using Valgrind-3.6.0.SVN-Debian and LibVEX; rerun with -h for copyright info
==15581== Command: /bin/ls -ld utilities/gprocessor
==15581==
==15581==
==15581== HEAP SUMMARY:
==15581== in use at exit: 12,962 bytes in 7 blocks
==15581== total heap usage: 22 allocs, 15 frees, 17,005 bytes allocated
==15581==
==15581== LEAK SUMMARY:
==15581== definitely lost: 0 bytes in 0 blocks
==15581== indirectly lost: 0 bytes in 0 blocks
==15581== possibly lost: 0 bytes in 0 blocks
==15581== still reachable: 12,962 bytes in 7 blocks
==15581== suppressed: 0 bytes in 0 blocks
==15581== Rerun with --leak-check=full to see details of leaked memory
==15581==
==15581== For counts of detected and suppressed errors, rerun with: -v
==15581== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 24 from 7)
==15582==
==15582== HEAP SUMMARY:
==15582== in use at exit: 8,433 bytes in 38 blocks
==15582== total heap usage: 69 allocs, 31 frees, 11,061 bytes allocated
==15582==
==15582== LEAK SUMMARY:
==15582== definitely lost: 1 bytes in 1 blocks
==15582== indirectly lost: 0 bytes in 0 blocks
==15582== possibly lost: 0 bytes in 0 blocks
==15582== still reachable: 8,432 bytes in 37 blocks
==15582== suppressed: 0 bytes in 0 blocks
==15582== Rerun with --leak-check=full to see details of leaked memory
==15582==
==15582== For counts of detected and suppressed errors, rerun with: -v
==15582== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 16 from 7)
==15580==
==15580== HEAP SUMMARY:
==15580== in use at exit: 0 bytes in 0 blocks
==15580== total heap usage: 0 allocs, 0 frees, 0 bytes allocated
==15580==
==15580== All heap blocks were freed -- no leaks are possible
==15580==
==15580== For counts of detected and suppressed errors, rerun with: -v
==15580== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 16 from 7)
==15590==
==15590== HEAP SUMMARY:
==15590== in use at exit: 0 bytes in 0 blocks
==15590== total heap usage: 0 allocs, 0 frees, 0 bytes allocated
==15590==
==15590== All heap blocks were freed -- no leaks are possible
==15590==
==15590== For counts of detected and suppressed errors, rerun with: -v
==15590== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 16 from 7)
==15593== Memcheck, a memory error detector
==15593== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al.
==15593== Using Valgrind-3.6.0.SVN-Debian and LibVEX; rerun with -h for copyright info
==15593== Command: /bin/sed 1q
==15593==
==15593==
==15593== HEAP SUMMARY:
==15593== in use at exit: 5,274 bytes in 8 blocks
==15593== total heap usage: 18 allocs, 10 frees, 6,562 bytes allocated
==15593==
==15593== LEAK SUMMARY:
==15593== definitely lost: 0 bytes in 0 blocks
==15593== indirectly lost: 0 bytes in 0 blocks
==15593== possibly lost: 0 bytes in 0 blocks
==15593== still reachable: 5,274 bytes in 8 blocks
==15593== suppressed: 0 bytes in 0 blocks
==15593== Rerun with --leak-check=full to see details of leaked memory
==15593==
==15593== For counts of detected and suppressed errors, rerun with: -v
==15593== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 16 from 7)
==15591==
==15591== HEAP SUMMARY:
==15591== in use at exit: 0 bytes in 0 blocks
==15591== total heap usage: 0 allocs, 0 frees, 0 bytes allocated
==15591==
==15591== All heap blocks were freed -- no leaks are possible
==15591==
==15591== For counts of detected and suppressed errors, rerun with: -v
==15591== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 16 from 7)
==15567== Memcheck, a memory error detector
==15567== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al.
==15567== Using Valgrind-3.6.0.SVN-Debian and LibVEX; rerun with -h for copyright info
==15567== Command: /var/lib/buildbot/gnash/build/squeeze-linux-x86_32/build/utilities/.libs/lt-gprocessor testsuite/swfdec/src/test/trace/movieclip-version-8.swf -r11 -f10 -v -d -1
==15567==
15567:1] 16:21:13 SECURITY: Checking security of URL 'file:///var/lib/buildbot/gnash/build/squeeze-linux-x86_32/build/testsuite/swfdec/src/test/trace/movieclip-version-8.swf'
15567:1] 16:21:14 SECURITY: Load of file /var/lib/buildbot/gnash/build/squeeze-linux-x86_32/build/testsuite/swfdec/src/test/trace/movieclip-version-8.swf granted (under local sandbox /var/lib/buildbot/gnash/build/squeeze-linux-x86_32/build/testsuite/swfdec/src/test/trace/)
==15567== Conditional jump or move depends on uninitialised value(s)
==15567== at 0x4BD4A2E: inflateReset2 (in /usr/lib/libz.so.1.2.3.4)
==15567== by 0x4BD4B0C: inflateInit2_ (in /usr/lib/libz.so.1.2.3.4)
==15567== by 0x4BD4B82: inflateInit_ (in /usr/lib/libz.so.1.2.3.4)
==15567== by 0x46EAF4C: gnash::zlib_adapter::InflaterIOChannel::InflaterIOChannel(std::auto_ptr<gnash::IOChannel>) (zlib_adapter.cpp:304)
==15567== by 0x46EB14B: gnash::zlib_adapter::make_inflater(std::auto_ptr<gnash::IOChannel>) (zlib_adapter.cpp:315)
==15567== by 0x42874D4: gnash::SWFMovieDefinition::readHeader(std::auto_ptr<gnash::IOChannel>, std::string const&) (SWFMovieDefinition.cpp:311)
==15567== by 0x4161466: gnash::MovieFactory::makeMovie(std::auto_ptr<gnash::IOChannel>, std::string const&, gnash::RunResources const&, bool) (MovieFactory.cpp:247)
==15567== by 0x4161CD7: gnash::MovieFactory::makeMovie(gnash::URL const&, gnash::RunResources const&, char const, bool, std::string const) (MovieFactory.cpp:321)
==15567== by 0x8051248: play_movie(std::string const&, gnash::RunResources const&) (processor.cpp:421)
==15567== by 0x8052A55: main (processor.cpp:371)
==15567==
15567:1] 16:21:16 SECURITY: Extensions disabled
15567:2] 16:21:17 UNIMPLEMENTED: FileAttributes tag in the SWF requests that network access is not granted to this movie (or application?) when loaded from the filesystem. Anyway Gnash won't care; use white/black listing in your .gnashrc instead
15567:1] 16:21:18 TRACE: _level0
15567:1] 16:21:18 TRACE: LNX
15567:1] 16:21:18 TRACE: LNX
15567:3] 16:21:19 SECURITY: Checking security of URL 'file:///var/lib/buildbot/gnash/build/squeeze-linux-x86_32/build/testsuite/swfdec/src/test/trace/movieclip-version-7.swf'
15567:3] 16:21:19 SECURITY: Load of file /var/lib/buildbot/gnash/build/squeeze-linux-x86_32/build/testsuite/swfdec/src/test/trace/movieclip-version-7.swf granted (under local sandbox /var/lib/buildbot/gnash/build/squeeze-linux-x86_32/build/testsuite/swfdec/src/test/trace/)
15567:1] 16:21:19 TRACE: _level8
15567:1] 16:21:19 TRACE: LNX
15567:1] 16:21:19 TRACE: LNX
15567:3] 16:21:19 SECURITY: Checking security of URL 'file:///var/lib/buildbot/gnash/build/squeeze-linux-x86_32/build/testsuite/swfdec/src/test/trace/movieclip-version-6.swf'
15567:3] 16:21:19 SECURITY: Load of file /var/lib/buildbot/gnash/build/squeeze-linux-x86_32/build/testsuite/swfdec/src/test/trace/movieclip-version-6.swf granted (under local sandbox /var/lib/buildbot/gnash/build/squeeze-linux-x86_32/build/testsuite/swfdec/src/test/trace/)
15567:4] 16:21:19 UNIMPLEMENTED: FileAttributes tag in the SWF requests that network access is not granted to this movie (or application?) when loaded from the filesystem. Anyway Gnash won't care; use white/black listing in your .gnashrc instead
15567:1] 16:21:19 TRACE: _level0.m8
15567:1] 16:21:19 TRACE: undefined
15567:1] 16:21:19 TRACE: undefined
15567:1] 16:21:19 TRACE: undefined
==15567== Thread 3:
==15567== Invalid read of size 4
==15567== at 0x41108AB: gnash::SWF::TagLoadersTable::get(gnash::SWF::TagType, void (*&)(gnash::SWFStream&, gnash::SWF::TagType, gnash::movie_definition&, gnash::RunResources const&)) const (stl_tree.h:1002)
==15567== by 0x4280A94: gnash::SWFParser::read(int) (SWFParser.cpp:94)
==15567== by 0x4288D3D: gnash::SWFMovieDefinition::read_all_swf() (SWFMovieDefinition.cpp:487)
==15567== by 0x428944A: gnash::SWFMovieLoader::execute(gnash::SWFMovieLoader&, gnash::SWFMovieDefinition*) (SWFMovieDefinition.cpp:123)
==15567== by 0x428B111: boost::detail::thread_data<boost::_bi::bind_t<void, void ()(gnash::SWFMovieLoader&, gnash::SWFMovieDefinition), boost::_bi::list2<boost::reference_wrapper<gnash::SWFMovieLoader>, boost::_bi::value<gnash::SWFMovieDefinition*> > > >::run() (bind.hpp:313)
==15567== by 0x4D0D0D4: thread_proxy (in /usr/lib/libboost_thread.so.1.42.0)
==15567== by 0x4911954: start_thread (pthread_create.c:300)
==15567== by 0x4AE5E7D: clone (clone.S:130)
==15567== Address 0x1048 is not stack'd, malloc'd or (recently) free'd
==15567==
==15567==
==15567== Process terminating with default action of signal 11 (SIGSEGV)
==15567== Access not within mapped region at address 0x1048
==15567== at 0x41108AB: gnash::SWF::TagLoadersTable::get(gnash::SWF::TagType, void (*&)(gnash::SWFStream&, gnash::SWF::TagType, gnash::movie_definition&, gnash::RunResources const&)) const (stl_tree.h:1002)
==15567== by 0x4280A94: gnash::SWFParser::read(int) (SWFParser.cpp:94)
==15567== by 0x4288D3D: gnash::SWFMovieDefinition::read_all_swf() (SWFMovieDefinition.cpp:487)
==15567== by 0x428944A: gnash::SWFMovieLoader::execute(gnash::SWFMovieLoader&, gnash::SWFMovieDefinition*) (SWFMovieDefinition.cpp:123)
==15567== by 0x428B111: boost::detail::thread_data<boost::_bi::bind_t<void, void ()(gnash::SWFMovieLoader&, gnash::SWFMovieDefinition), boost::_bi::list2<boost::reference_wrapper<gnash::SWFMovieLoader>, boost::_bi::value<gnash::SWFMovieDefinition*> > > >::run() (bind.hpp:313)
==15567== by 0x4D0D0D4: thread_proxy (in /usr/lib/libboost_thread.so.1.42.0)
==15567== by 0x4911954: start_thread (pthread_create.c:300)
==15567== by 0x4AE5E7D: clone (clone.S:130)
==15567== If you believe this happened as a result of a stack
==15567== overflow in your program's main thread (unlikely but
==15567== possible), you can try to increase the size of the
==15567== main thread stack using the --main-stacksize= flag.
==15567== The main thread stack size used in this run was 8388608.
==15567==
==15567== HEAP SUMMARY:
==15567== in use at exit: 198,147 bytes in 382 blocks
==15567== total heap usage: 6,676 allocs, 6,294 frees, 509,253 bytes allocated
==15567==
==15567== LEAK SUMMARY:
==15567== definitely lost: 8 bytes in 1 blocks
==15567== indirectly lost: 0 bytes in 0 blocks
==15567== possibly lost: 5,267 bytes in 228 blocks
==15567== still reachable: 192,872 bytes in 153 blocks
==15567== suppressed: 0 bytes in 0 blocks
==15567== Rerun with --leak-check=full to see details of leaked memory
==15567==
==15567== For counts of detected and suppressed errors, rerun with: -v
==15567== Use --track-origins=yes to see where uninitialised values come from
==15567== ERROR SUMMARY: 4 errors from 2 contexts (suppressed: 184 from 7)
Killed
%
|