gvfs crash



Hello! I try to solve gvfs daemon crash. Crash happens when i listening music from my samba server via Amarok.

I get info via gdb and fix stack crash, here is it:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb626db90 (LWP 3787)]
0x00120b46 in run_sync_state_machine (file=0xa01a560, iterator=0x11f000
<iterate_seek_state_machine>, data="" cancellable=0x0,
error=0xb626d174)
at gdaemonfileinputstream.c:450
450 g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
(gdb) bt
#0 0x00120b46 in run_sync_state_machine (file=0xa01a560, iterator=0x11f000
<iterate_seek_state_machine>, data="" cancellable=0x0,
error=0xb626d174)
at gdaemonfileinputstream.c:450
#1 0x00120db9 in g_daemon_file_input_stream_seek (stream=0xa01a560,
offset=245760, type=G_SEEK_SET, cancellable=0x0, error=0xb626d174) at
gdaemonfileinputstream.c:1223
#2 0x05915418 in g_file_input_stream_seekable_seek (seekable=<value optimized
out>, offset=<value optimized out>, type=<value optimized out>,
cancellable=<value optimized out>, error=<value optimized out>) at
gfileinputstream.c:346
#3 0x05922197 in IA__g_seekable_seek (seekable=<value optimized out>,
offset=<value optimized out>, type=Could not find the frame base for
"IA__g_seekable_seek".
) at gseekable.c:152
#4 0x0804be94 in vfs_read (path=0xa014a20 "/www on mini.local/music/Prodigy -
The Fat Of The Land (1997) (MP3-EAC-320 kBs)/08 - The Prodigy -
Firestarter.mp3",
buf=0xa02ad00
"\226)c9\022e�3��*\024��ÿ?\224'�\0031�p��\024P�n\204�w\225mj\t���U\222����WSX\212�eU\036��;^\237,�\221�-\213\032Hn;\b�K�\003\021�;ae�'\204�,�'\201��\t;\211\203|\tZK$\003�ǰ\026\213\225)\226N\225\225\022)\2248L&4�PP��7\036�#R\227\026�'M",
size=131072, offset=245760, fi=0xb626d28c) at gvfsfusedaemon.c:1108
#5 0x00c4f66e in fuse_fs_read (fs=<value optimized out>, path=Could not find
the frame base for "fuse_fs_read".
) at fuse.c:852
#6 0x00c554b1 in fuse_lib_read (req=<value optimized out>, ino=<value
optimized out>, size=<value optimized out>, off=<value optimized out>,
fi=<value optimized out>)
at fuse.c:1959
#7 0x00c5a86a in do_read (req=<value optimized out>, nodeid=Could not find the
frame base for "do_read".
) at fuse_lowlevel.c:623
#8 0x00c59099 in fuse_ll_process (data="" optimized out>, buf=<value
optimized out>, len=Could not find the frame base for "fuse_ll_process".
) at fuse_lowlevel.c:1182
#9 0x00c5bbf6 in fuse_session_process (se=Could not find the frame base for
"fuse_session_process".
) at fuse_session.c:90
#10 0x00c57b89 in fuse_do_work (data="" optimized out>) at
fuse_loop_mt.c:100
#11 0x00c8232f in start_thread (arg=<value optimized out>) at
pthread_create.c:297
#12 0x00bbd20e in clone () from /lib/libc.so.6
(gdb)

problem occur in file gdaemonfileoutputstream.c, in function:

static gboolean
run_sync_state_machine (GDaemonFileOutputStream *file,
            state_machine_iterator iterator,
            gpointer data,
            GCancellable *cancellable,
            GError **error)


here is code with seg fault:

        {
          g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
               _("Error in stream protocol: %s"), io_error->message);
          g_error_free (io_error);
          return FALSE;
        }
    }
      else if (res == 0 && io_data.io_size != 0)
    {
      g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
               _("Error in stream protocol: %s"), _("End of stream"));
      return FALSE;
    }


is someone can suggest the crash condition. for example it could be bad io_error pointer or not?




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]