[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Request help debugging octave-video in mxe-octave
From: |
JohnD |
Subject: |
Re: Request help debugging octave-video in mxe-octave |
Date: |
Thu, 7 Jan 2016 08:02:04 -0500 |
>
> Message: 3
> Date: Tue, 5 Jan 2016 10:21:55 -0800
> From: John Swensen <address@hidden>
> To: Andreas Weber <address@hidden>
> Cc: octave-maintainers <address@hidden>
> Subject: Re: Request help debugging octave-video in mxe-octave
> Message-ID: <address@hidden>
> Content-Type: text/plain; charset=utf-8
>
>
> > On Jan 1, 2016, at 10:58 AM, Andreas Weber <address@hidden> wrote:
> >
> > Dear maintainers,
> >
> > I need some help debugging octave-video with ffmpeg in mxe-octave.
> > Sometimes I get a strange segmentation fault in the AVHandler
destructor.
> >
> > What I've done so far:
> > Crosscompile mxe-octave on Debian Jessie with $ ./configure
> > --disable-strip-dist-files --enable-devel-tools
> > --enable-binary-packages $ make gdb ffmpeg zip-dist
> >
> > In Windows7, extract zip, and grab code from
> > http://sourceforge.net/p/octave/video/ci/default/tree/
> > run octave in CLI mode, getpid, attach gdb.
> >
> > Back in Octave:
> > >> cd octave/video/src
> > >> test avifile
> >
> > This sometimes works (PASS 1/1) and sometimes fails at different places:
> >
> > ----------------------------------------------------
> > Program received signal SIGSEGV, Segmentation fault.
> > [Switching to Thread 2648.0x7f4]
> > 0x7795e3c6 in ntdll!RtlInitUnicodeString () from
> > C:\Windows\SysWOW64\ntdll.dll
> > (gdb)
> > Continuing.
> >
> > --------------------------------------------------
> > Program received signal SIGSEGV, Segmentation fault.
> > [Switching to Thread 3212.0xe9c]
> > 0x77963aa8 in ntdll!RtlQueryPerformanceCounter ()
> > from C:\Windows\SysWOW64\ntdll.dll
> > (gdb) bt
> > #0 0x77963aa8 in ntdll!RtlQueryPerformanceCounter ()
> > from C:\Windows\SysWOW64\ntdll.dll
> > #1 0x77962c7a in ntdll!RtlQueryPerformanceCounter ()
> > from C:\Windows\SysWOW64\ntdll.dll
> > #2 0x77962b65 in ntdll!RtlQueryPerformanceCounter ()
> > from C:\Windows\SysWOW64\ntdll.dll
> > #3 0x76b698cd in msvcrt!free () from C:\Windows\syswow64\msvcrt.dll
> > #4 0x17aa0000 in ?? ()
> > #5 0x1c0159fe in avpriv_mpa_decode_header ()
> > from C:\octave-dbg\octave-4.0.0\bin\avcodec-56.dll
> > #6 0x1c3bcce9 in avcodec-56!av_dct_end ()
> > from C:\octave-dbg\octave-4.0.0\bin\avcodec-56.dll
> > #7 0x1c3ce86e in avcodec_close ()
> > from C:\octave-dbg\octave-4.0.0\bin\avcodec-56.dll
> > #8 0x6660167c in AVHandler::~AVHandler (this=0x1bacd708,
> > __in_chrg=<optimized out>) at AVHandler.cc:83
> > #9 0x6660384a in Avifile::~Avifile (this=0x1bc20c90,
> >
> > ---------------------------------------------------------
> > Program received signal SIGSEGV, Segmentation fault.
> > [Switching to Thread 3184.0xe48]
> > 0x77962e33 in ntdll!RtlQueryPerformanceCounter ()
> > from C:\Windows\SysWOW64\ntdll.dll
> > (gdb) bt
> > #0 0x77962e33 in ntdll!RtlQueryPerformanceCounter ()
> > from C:\Windows\SysWOW64\ntdll.dll
> > #1 0x77962b65 in ntdll!RtlQueryPerformanceCounter ()
> > from C:\Windows\SysWOW64\ntdll.dll
> > #2 0x76b698cd in msvcrt!free () from C:\Windows\syswow64\msvcrt.dll
> > #3 0x17a70000 in ?? ()
> > #4 0x0128b8bc in ~ArrayRep (this=0x1bbfaa70, __in_chrg=<optimized out>)
> > at
> > /home/andy/src/mxe-octave/tmp-stable-octave/octave-4.0.0/liboctave/arr
> > ay/
> > Array.h:89
> > #5 Array<double>::~Array (this=0x0, __in_chrg=<optimized out>)
> > at
> > /home/andy/src/mxe-octave/tmp-stable-octave/octave-4.0.0/liboctave/arr
> > ay/
> > Array.h:223
> > #6 0x011e3b83 in ~MArray (this=0x1bb13a40, __in_chrg=<optimized out>)
> > at
> > /home/andy/src/mxe-octave/tmp-stable-octave/octave-4.0.0/liboctave/arr
> > ay/
> > MArray.h:63
> > #7 ~NDArray (this=0x1bb13a40, __in_chrg=<optimized out>)
> > at
> > /home/andy/src/mxe-octave/tmp-stable-octave/octave-4.0.0/liboctave/arr
> > ay/
> > dNDArray.h:35
> > #8 ~octave_base_matrix (this=0x1bb13a38, __in_chrg=<optimized out>)
> > at
> > /home/andy/src/mxe-octave/tmp-stable-octave/octave-4.0.0/libinterp/oct
> > ave
> > -value/ov-base-mat.h:68
> > #9 ~octave_matrix (this=0x1bb13a38, __in_chrg=<optimized out>)
> > at
> > /home/andy/src/mxe-octave/tmp-stable-octave/octave-4.0.0/libinterp/oct
> > ave
> > -value/ov-re-mat.h:97
> >
> > Any ideas what I could try?
> > Thank you, Andy
> >
>
> My initial thought would be that the ?clear m? in the test script is
forcing the
> destructor to be called and it is possible that stuff is still going on in
the encoding
> process (ffmpeg is sometimes multithreaded depending on the codec, and
there
> could still be file IO going on).
>
> As a first test, I would put a big delay (say 5-10 seconds) between the
?endfor'
> and the ?clear m' in the avifile test. If it is just a matter of trying
to delete the
> ffmpeg codec and other objects before they are ready to be deleted, that
could
> cause a segfault. I know there is a chunk of code just previous to the
segfault
> location that *should be* cleaning things up before closing everything,
but
> maybe it isn?t cleaning up correctly?
>
> John S.
>
Ok - I can see it on my build as well - it doesn't happen all the time
I used to see it crash on calling avifile before 1.2.1, but don't seem to
see it there anymore, but do see it when running the video test script
- Request help debugging octave-video in mxe-octave, Andreas Weber, 2016/01/01
- Re: Request help debugging octave-video in mxe-octave,
JohnD <=
- RE: Request help debugging octave-video in mxe-octave, JohnD, 2016/01/07
- Re: Request help debugging octave-video in mxe-octave, John Swensen, 2016/01/07
- RE: Request help debugging octave-video in mxe-octave, JohnD, 2016/01/07
- RE: Request help debugging octave-video in mxe-octave, JohnD, 2016/01/07
- RE: Request help debugging octave-video in mxe-octave, JohnD, 2016/01/08
- Re: Request help debugging octave-video in mxe-octave, Andreas Weber, 2016/01/10