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]