Package: beagle Version: 0.2.6-1 Severity: important I'm experiencing a semi-reproducible beagle hang. The symptoms are that it will get 'stuck' in the middle of an indexing run and never proceed, even if the system is totally idle. It doesn't always trigger on the same file, hence semi-reproducible, but it happens often enough to make beagle unusable. In debug mode I can watch it index away for awhile and then blow up. The errors look like this:
$ BEAGLE_EXERCISE_THE_DOG=1 beagled --fg --debug ... Debug: +file:///... some file here ... ================================================================= Got a SIGSEGV while executing native code. This usually indicates a fatal error in the mono runtime or one of the native libraries used by your application. ================================================================= Stacktrace: in (wrapper managed-to-native) Beagle.Util.XdgMime:xdg_mime_get_mime_type_for_file (string,intptr) <0x4> in (wrapper managed-to-native) Beagle.Util.XdgMime:xdg_mime_get_mime_type_for_file (string,intptr) <0xffffff49> in Beagle.Util.XdgMime:GetMimeType (string) (at /home/jose/devel/build-area/beagle-0.2.6/Util/XdgMime.cs:43) in Beagle.Daemon.FilterFactory:FilterIndexable (Beagle.Indexable,Beagle.Daemon.TextCache,Beagle.Daemon.Filter&) (at /home/jose/devel/build-area/beagle-0.2.6/beagled/FilterFactory.cs:218) in Beagle.Daemon.LuceneIndexingDriver:Flush_Unlocked (Beagle.Daemon.IndexerRequest) (at /home/jose/devel/build-area/beagle-0.2.6/beagled/LuceneIndexingDriver.cs:259) in Beagle.Daemon.LuceneIndexingDriver:Flush (Beagle.Daemon.IndexerRequest) (at /home/jose/devel/build-area/beagle-0.2.6/beagled/LuceneIndexingDriver.cs:90) in Beagle.IndexHelper.RemoteIndexerExecutor:Execute (Beagle.RequestMessage) (at /home/jose/devel/build-area/beagle-0.2.6/beagled/IndexHelper/RemoteIndexerExecutor.cs:69) in Beagle.Daemon.ConnectionHandler:HandleConnection () (at /home/jose/devel/build-area/beagle-0.2.6/beagled/Server.cs:275) in (wrapper delegate-invoke) System.MulticastDelegate:invoke_void () <0x399> in Beagle.Util.ExceptionHandlingThread:ThreadStarted () (at /home/jose/devel/build-area/beagle-0.2.6/Util/ExceptionHandlingThread.cs:54) in (wrapper delegate-invoke) System.MulticastDelegate:invoke_void () <0xffffff90> in (wrapper runtime-invoke) System.Object:runtime_invoke_void (object,intptr,intptr,intptr) <0x9a2b6367> Native stacktrace: /usr/lib/libmono.so.0(mono_handle_native_sigsegv+0xeb) [0x4107d58b] /usr/lib/libmono.so.0 [0x4103e36d] [0xffffe440] /lib/tls/i686/cmov/libc.so.6(bsearch+0x52) [0x46df81a2] /usr/lib/beagle/libbeagleglue.so(_xdg_mime_alias_list_lookup+0x59) [0xa6a9d459] /usr/lib/beagle/libbeagleglue.so(xdg_mime_unalias_mime_type+0x52) [0xa6a9aee2] /usr/lib/beagle/libbeagleglue.so(xdg_mime_mime_type_equal+0x34) [0xa6a9af24] /usr/lib/beagle/libbeagleglue.so(_xdg_mime_magic_lookup_data+0xf7) [0xa6a9c837] /usr/lib/beagle/libbeagleglue.so(xdg_mime_get_mime_type_for_file+0x1a6) [0xa6a9b4f6] [0xa61efe10] [0xa61efd22] [0xa6a123d1] [0xa6a26fe8] [0xa6a25df3] [0xa6a3be57] [0xa66980e4] [0xa6da54e0] [0xa6da584a] [0xa6da54e0] [0xa6da5441] /usr/lib/libmono.so.0 [0x4105b780] /usr/lib/libmono.so.0(mono_runtime_invoke+0x33) [0x410c0363] /usr/lib/libmono.so.0(mono_runtime_delegate_invoke+0x46) [0x410c1656] /usr/lib/libmono.so.0 [0x410f43d6] /usr/lib/libmono.so.0 [0x411420e2] /usr/lib/libmono.so.0(GC_start_routine+0x63) [0x4115dc73] /lib/tls/i686/cmov/libpthread.so.0 [0x470a6e60] /lib/tls/i686/cmov/libc.so.6(__clone+0x5e) [0x46e9e8ee] Debug: Caught ResponseMessageException: Document element did not appear. Line 1, position 1. Debug: Exception was unexpected. Details: Beagle.ResponseMessageException: Document element did not appear. Line 1, position 1. ---> System.Xml.XmlException: Document element did not appear. Line 1, position 1. in [0x0014e] (at /home/ingo/mono-1.1.13.6/mcs/class/System.XML/System.Xml/XmlTextReader.cs:595) System.Xml.XmlTextReader:Read () in [0x0002c] (at /home/ingo/mono-1.1.13.6/mcs/class/System.XML/System.Xml/XmlReader.cs:538) System.Xml.XmlReader:MoveToContent () in [0x00006] (at /home/ingo/mono-1.1.13.6/mcs/class/System.XML/System.Xml.Serialization/XmlSerializationReaderInterpreter.cs:83) System.Xml.Serialization.XmlSerializationReaderInterpreter:ReadRoot () in [0x00022] (at /home/ingo/mono-1.1.13.6/mcs/class/System.XML/System.Xml.Serialization/XmlSerializer.cs:333) System.Xml.Serialization.XmlSerializer:Deserialize (System.Xml.Serialization.XmlSerializationReader reader) in [0x0002e] (at /home/ingo/mono-1.1.13.6/mcs/class/System.XML/System.Xml.Serialization/XmlSerializer.cs:322) System.Xml.Serialization.XmlSerializer:Deserialize (System.Xml.XmlReader xmlReader) in [0x00010] (at /home/ingo/mono-1.1.13.6/mcs/class/System.XML/System.Xml.Serialization/XmlSerializer.cs:303) System.Xml.Serialization.XmlSerializer:Deserialize (System.IO.Stream stream) in [0x000cf] (at /home/jose/devel/build-area/beagle-0.2.6/BeagleClient/Client.cs:365) Beagle.Client:Send (Beagle.RequestMessage request)--- End of inner exception stack trace --- in [0x00112] Beagle.Client:Send (Beagle.RequestMessage request) in [0x0000e] (at /home/jose/devel/build-area/beagle-0.2.6/BeagleClient/Message.cs:172) Beagle.RequestMessage:Send () in [0x00037] (at /home/jose/devel/build-area/beagle-0.2.6/beagled/RemoteIndexer.cs:146) Beagle.Daemon.RemoteIndexer:SendRequest (Beagle.Daemon.RemoteIndexerRequest request) Debug: Launching helper process Debug: IndexHelper PID is 15101 Debug: Starting messaging server Debug: Helper Size: VmRSS=11.9 MB, size=1.00, 0.0% Debug: Found IndexHelper (15101) in 1.50s Debug: -file:///... some pathname here ... Warn: Exception caught while executing Beagle.Daemon.ConnectionHandler:Void HandleConnection() Warn: System.IO.IOException: Lock obain timed out: /home/zack/.beagle/Indexes/FileSystemIndex/Locks/lucene-319c75e44d366d552ec184cbaee3c5c1-write.lock -- pid -- process exists in [0x0010e] (at /home/jose/devel/build-area/beagle-0.2.6/beagled/Lucene.Net/Store/Lock.cs:91) Lucene.Net.Store.Lock:Obtain (Int64 lockWaitTimeout) in [0x00039] (at /home/jose/devel/build-area/beagle-0.2.6/beagled/Lucene.Net/Index/IndexReader.cs:547) Lucene.Net.Index.IndexReader:AquireWriteLock () in [0x00014] (at /home/jose/devel/build-area/beagle-0.2.6/beagled/Lucene.Net/Index/IndexReader.cs:576) Lucene.Net.Index.IndexReader:Delete (Int32 docNum) in [0x0001f] (at /home/jose/devel/build-area/beagle-0.2.6/beagled/Lucene.Net/Index/IndexReader.cs:605) Lucene.Net.Index.IndexReader:Delete (Lucene.Net.Index.Term term) in [0x000a4] (at /home/jose/devel/build-area/beagle-0.2.6/beagled/LuceneIndexingDriver.cs:126) Beagle.Daemon.LuceneIndexingDriver:Flush_Unlocked (Beagle.Daemon.IndexerRequest request) in [0x0000f] (at /home/jose/devel/build-area/beagle-0.2.6/beagled/LuceneIndexingDriver.cs:90) Beagle.Daemon.LuceneIndexingDriver:Flush (Beagle.Daemon.IndexerRequest request) in [0x00079] (at /home/jose/devel/build-area/beagle-0.2.6/beagled/IndexHelper/RemoteIndexerExecutor.cs:69) Beagle.IndexHelper.RemoteIndexerExecutor:Execute (Beagle.RequestMessage raw_request) in [0x00232] (at /home/jose/devel/build-area/beagle-0.2.6/beagled/Server.cs:275) Beagle.Daemon.ConnectionHandler:HandleConnection () in (wrapper delegate-invoke) System.MulticastDelegate:invoke_void () in [0x0005a] (at /home/jose/devel/build-area/beagle-0.2.6/Util/ExceptionHandlingThread.cs:54) Beagle.Util.ExceptionHandlingThread:ThreadStarted () and then it hangs forever. It is not completely wedged - it does respond to queries - but it will never index anything again (I've left it in this state for 24+ hours with no change). It can be manually unstuck by issuing the following commands: $ rm -f .beagle/Indexes/FileSystemIndex/Locks/lucene-* $ killall beagled-helper; sleep 5; killall beagled-helper -- yes, you have to killall twice, with the five-second delay. The first time, it just prints Debug: Handling signal 15 (SIGTERM) Debug: Initiating shutdown in response to signal. Debug: CancelIfBlocking Beagle.Daemon.ConnectionHandler Debug: (1) Waiting for 2 workers... Debug: waiting for HandleConnection (2) Debug: waiting for server '/home/zack/.beagle/socket-helper' Debug: (2) Waiting for 1 worker... Debug: Server '/home/zack/.beagle/socket-helper' shut down Debug: waiting for HandleConnection (2) and then hangs again. The second time, some more errors appear: Debug: Handling signal 15 (SIGTERM) Debug: Forcing immediate shutdown. Debug: Caught ResponseMessageException: Document element did not appear. Line 1, position 1. Debug: Exception was unexpected. Details: Beagle.ResponseMessageException: Document element did not appear. Line 1, position 1. ---> System.Xml.XmlException: Document element did not appear. Line 1, position 1. in [0x0014e] (at /home/ingo/mono-1.1.13.6/mcs/class/System.XML/System.Xml/XmlTextReader.cs:595) System.Xml.XmlTextReader:Read () in [0x0002c] (at /home/ingo/mono-1.1.13.6/mcs/class/System.XML/System.Xml/XmlReader.cs:538) System.Xml.XmlReader:MoveToContent () in [0x00006] (at /home/ingo/mono-1.1.13.6/mcs/class/System.XML/System.Xml.Serialization/XmlSerializationReaderInterpreter.cs:83) System.Xml.Serialization.XmlSerializationReaderInterpreter:ReadRoot () in [0x00022] (at /home/ingo/mono-1.1.13.6/mcs/class/System.XML/System.Xml.Serialization/XmlSerializer.cs:333) System.Xml.Serialization.XmlSerializer:Deserialize (System.Xml.Serialization.XmlSerializationReader reader) in [0x0002e] (at /home/ingo/mono-1.1.13.6/mcs/class/System.XML/System.Xml.Serialization/XmlSerializer.cs:322) System.Xml.Serialization.XmlSerializer:Deserialize (System.Xml.XmlReader xmlReader) in [0x00010] (at /home/ingo/mono-1.1.13.6/mcs/class/System.XML/System.Xml.Serialization/XmlSerializer.cs:303) System.Xml.Serialization.XmlSerializer:Deserialize (System.IO.Stream stream) in [0x000cf] (at /home/jose/devel/build-area/beagle-0.2.6/BeagleClient/Client.cs:365) Beagle.Client:Send (Beagle.RequestMessage request)--- End of inner exception stack trace --- in [0x00112] Beagle.Client:Send (Beagle.RequestMessage request) in [0x0000e] (at /home/jose/devel/build-area/beagle-0.2.6/BeagleClient/Message.cs:172) Beagle.RequestMessage:Send () in [0x00037] (at /home/jose/devel/build-area/beagle-0.2.6/beagled/RemoteIndexer.cs:146) Beagle.Daemon.RemoteIndexer:SendRequest (Beagle.Daemon.RemoteIndexerRequest request) Debug: Launching helper process Debug: IndexHelper PID is 15170 Debug: Starting messaging server Debug: Helper Size: VmRSS=11.8 MB, size=1.00, 0.0% Debug: Found IndexHelper (15170) in 1.05s and then it does restart the indexing process ... only, of course, to get stuck again on some other file. It seems to happen most often on .ogg files, but I think I've seen it trip over other things. I am using the stock Debian 2.6.16 kernel and ext3, and therefore do not have extended attributes available. If I might make a suggestion: the underlying bug is of course the SIGSEGV in native code that is reported, but the immediate cause of the hang appears to be that beagle has no facility to recover from stale database locks. A standard tactic is to write the PID to the lockfile, and when trying to acquire a lock, call kill(0, $pid) which will return successfully if and only if the process still exists (while having no effect on the process if it does exist). If the kill() fails, delete the lockfile and proceed. -- System Information: Debian Release: testing/unstable APT prefers unstable APT policy: (500, 'unstable'), (500, 'testing') Architecture: i386 (i686) Shell: /bin/sh linked to /bin/bash Kernel: Linux 2.6.16-1-686-smp Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968) Versions of packages beagle depends on: ii adduser 3.87 Add and remove users and groups ii bash 3.1-4 The GNU Bourne Again SHell ii libatk1.0-0 1.11.4-2 The ATK accessibility toolkit ii libc6 2.3.6-7 GNU C Library: Shared libraries ii libcairo2 1.0.4-2 The Cairo 2D vector graphics libra ii libexif12 0.6.13-4 library to parse EXIF files ii libfontconfig1 2.3.2-5.1 generic font configuration library ii libgalago-cil 0.3.2-4 CLI bindings for libgalago ii libgconf2.0-cil 2.8.2-1 CLI binding for GConf 2.12 ii libglade2.0-cil 2.8.2-1 CLI binding for the Glade librarie ii libglib2.0-0 2.10.2-2 The GLib library of C routines ii libglib2.0-cil 2.8.2-1 CLI binding for the GLib utility l ii libgmime2.1-cil 2.1.19-1 CLI binding for the MIME library, ii libgnome2.0-cil 2.8.2-1 CLI binding for GNOME 2.12 ii libgnomevfs2-0 2.14.1-2 GNOME virtual file-system (runtime ii libgtk2.0-0 2.8.17-2 The GTK+ graphical user interface ii libgtk2.0-cil 2.8.2-1 CLI binding for the GTK+ toolkit 2 ii libice6 1:1.0.0-3 X11 Inter-Client Exchange library ii libmono-corlib1.0-cil 1.1.13.6-4 Mono core library (1.0) ii libmono-sharpzip0.6-cil 1.1.13.6-4 Mono SharpZipLib library ii libmono-sharpzip0.84-cil 1.1.13.6-4 Mono SharpZipLib library ii libmono-sqlite1.0-cil 1.1.13.6-4 Mono Sqlite library ii libmono-system-data1.0-cil 1.1.13.6-4 Mono System.Data library ii libmono-system-runtime1.0-ci 1.1.13.6-4 Mono System.Runtime library ii libmono-system-web1.0-cil 1.1.13.6-4 Mono System.Web library ii libmono-system1.0-cil 1.1.13.6-4 Mono System libraries (1.0) ii libmono0 1.1.13.6-4 libraries for the Mono JIT ii libmono1.0-cil 1.1.13.6-4 Mono libraries (1.0) ii libpango1.0-0 1.12.1-3 Layout and rendering of internatio ii librsvg2-2 2.14.3-2 SAX-based renderer library for SVG ii libsm6 1:1.0.0-4 X11 Session Management library ii libsqlite0 2.8.16-1 SQLite shared library ii libx11-6 2:1.0.0-6 X11 client-side library ii libxcursor1 1.1.5.2-5 X cursor management library ii libxext6 1:1.0.0-4 X11 miscellaneous extension librar ii libxfixes3 1:3.0.1.2-4 X11 miscellaneous 'fixes' extensio ii libxi6 1:1.0.0-5 X11 Input extension library ii libxinerama1 1:1.0.1-4 X11 Xinerama extension library ii libxrandr2 2:1.1.0.2-4 X11 RandR extension library ii libxrender1 1:0.9.0.2-4 X Rendering Extension client libra ii libxss1 1:1.0.1-4 X11 Screen Saver extension library ii mono-runtime 1.1.13.6-4 Mono runtime Versions of packages beagle recommends: ii xpdf-utils [poppler-utils] 3.01-7 Portable Document Format (PDF) sui -- no debconf information -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]