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]

Reply via email to