Scribes and GVFS don't like each other when a file is opened via Nautilus

Bug #362009 reported by Aidenn
2
Affects Status Importance Assigned to Milestone
Scribes
Fix Released
Medium
Mystilleef

Bug Description

In Scribes 0.3.3 trying to save a file opened with Nautilus via GVFS results in the message:

File: file:///home/aidenn/.gvfs/FTP%20as%20aidenn%20on%20xxx.xxx.xxx.xxx/blah/blah/blah.php

FileTransferUpdateError 15

In latest 0.4 the error message doesn't pop up, Scribes says "file saved", however the file is not really saved.

Everything's fine when navigating to the file using the open dialog.

Revision history for this message
Mystilleef (mystilleef) wrote :

Thanks for the feedback.

Can you give the version of 0.4 you have installed? scribes -v

Revision history for this message
Aidenn (aidenn) wrote :

[aidenn@intruder ~]$ ./usr/bin/scribes -v
Scribes version 0.4-eurika-dev-build434

Built it yesterday.

Revision history for this message
Mystilleef (mystilleef) wrote :

Are you having problems with files saved in that particular folder or any folder? Does Scribes save correctly to your home or desktop folders?

Revision history for this message
Aidenn (aidenn) wrote :

Any folder opened via ftp with Nautilus (or from the command line), in home/Desktop it saves perfectly. It's not permissions or anything, because everything else (I checked gEdit, nano, mc and leafpad) saves files opened this way. It must be something about Scribes not knowing it's a network share, because it doesn't even wait. The error message and "file saved" pop up the instant I press save, when it should take a while to process through ftp.

Oh, and the path on the bottom of the Scribes window is:

~/.gvfs/FTP as blah blah/path/file.ext

While, if I open the file with the open dialog (and navigate to the same GVFS folder with the same connection) it's simply:

/path/file.ext

And when I press save it waits a while before returning "file saved" (and it really does save then).

Revision history for this message
Aidenn (aidenn) wrote :

With 0.4-dev-build443 there's no message whatsoever, instead the following appears in the console:

Traceback (most recent call last):
  File "/home/aidenn/usr/lib/python2.6/site-packages/SCRIBES/SaveSystem/ExternalProcess/FileTransferer.py", line 51, in __update_cb
    self.__error(message)
AttributeError: 'Transferer' object has no attribute '_Transferer__error'

Mystilleef (mystilleef)
Changed in scribes:
assignee: nobody → mystilleef
importance: Undecided → Medium
Revision history for this message
Mystilleef (mystilleef) wrote :

Okay, found the problem. GNOMEVFS needs to be deprecated in favor of GIO/GVFS. So Scribes needs to use GIO/GVFS. I'm working on this at the moment. Hopefully, the next branch update will address this issue.

Revision history for this message
Mystilleef (mystilleef) wrote :

I think I've addressed this problem in build 453. Please test. With this build Scribes can open and save to remote locations provided the location is already mounted and properly authenticated. Scribes cannot yet mount and authenticate remote locations. I'll be working on that next.

Revision history for this message
Aidenn (aidenn) wrote :

Scribes crashes when I press ctrl+s with:

process 9837: Array or variant type requires that type int32 be written, but end_struct was written.
The overall signature expected here was ' ((ii)sss)' and we are on byte 3 of that signature.
  D-Bus not built with -rdynamic so unable to print a backtrace

complete console output:

[aidenn@intruder controllers]$ ~/usr/bin/scribes ./errors.php
Traceback (most recent call last):
  File "/home/aidenn/usr/share/scribes/plugins/DrawWhitespace/WhitespaceDrawer.py", line 133, in __show_cb
    self.__check_event_signal()
  File "/home/aidenn/usr/share/scribes/plugins/DrawWhitespace/WhitespaceDrawer.py", line 98, in __check_event_signal
    self.__block_event_after_signal()
  File "/home/aidenn/usr/share/scribes/plugins/DrawWhitespace/WhitespaceDrawer.py", line 84, in __block_event_after_signal
    self.__textview.handler_block(self.__sig_id1)
AttributeError: 'Drawer' object has no attribute '_Drawer__sig_id1'
ERROR:dbus.connection:Unable to set arguments (u"<?php defined('SYSPATH') or die('No direct script access.');\n\nclass Errors_Controller extends Template_Controller\n{\n\n public function error_403()\n {\n echo Kohana::lang('error.403');\n die();\n }\n\n public function error_404()\n {\n echo Kohana::lang('error.404');\n die();\n }\n\n}\n", 140131723541712) according to signature u'vv': <type 'exceptions.OverflowError'>: Value -174424880 out of range for Int32
ERROR: Cannot send message to word completion indexer
ERROR:dbus.connection:Unable to set arguments (u"<?php defined('SYSPATH') or die('No direct script access.');\n\nclasss Errors_Controller extends Template_Controller\n{\n\n public function error_403()\n {\n echo Kohana::lang('error.403');\n die();\n }\n\n public function error_404()\n {\n echo Kohana::lang('error.404');\n die();\n }\n\n}\n", 140131723541712) according to signature u'vv': <type 'exceptions.OverflowError'>: Value -174424880 out of range for Int32
ERROR: Cannot send message to word completion indexer
process 9837: Array or variant type requires that type int32 be written, but end_struct was written.
The overall signature expected here was ' ((ii)sss)' and we are on byte 3 of that signature.
  D-Bus not built with -rdynamic so unable to print a backtrace

Revision history for this message
Mystilleef (mystilleef) wrote :

I fixed the draw white space bug in build 454.

1) Make sure no instances of Scribes is running. Killall Scribes processes via gnome-system-monitor. If it's not too much hassle restart your system.
2) Make sure the dbus daemon is running. I have not idea why it shouldn't be running. Maybe it crashed.
3) Also post the details of scribes -i

And then test again.

Thanks.

Revision history for this message
Aidenn (aidenn) wrote :

With 454 no other errors present. However it's the same when I press ctrl+s:

[aidenn@intruder controllers]$ ~/usr/bin/scribes ./errors.php
ERROR:No word completion indexer process found
process 15013: Array or variant type requires that type int32 be written, but end_struct was written.
The overall signature expected here was ' ((ii)sss)' and we are on byte 3 of that signature.
  D-Bus not built with -rdynamic so unable to print a backtrace

1) checked
2) double checked (I'm also using dbus for other things so I'd have noticed if something was wrong with it)
3)

[aidenn@intruder controllers]$ ~/usr/bin/scribes -i
========================================================
System Info: ('Linux', 'intruder', '2.6.29-ARCH', '#1 SMP PREEMPT Wed May 20 06:42:43 UTC 2009', 'x86_64')
Python Version: 2.6.2 (r262:71600, Apr 18 2009, 17:37:01)
[GCC 4.3.3]
System Byteorder: little
Python Modules: ('__builtin__', '__main__', '_ast', '_codecs', '_sre', '_symtable', '_warnings', 'errno', 'exceptions', 'gc', 'imp', 'marshal', 'posix', 'pwd', 'signal', 'sys', 'thread', 'xxsubtype', 'zipimport')
========================================================
Scribes Version: 0.4-dev-build454
Dbus Version: (0, 83, 0)
GTK+ Version: (2, 16, 1)
PyGTK Version: (2, 14, 1)
GNOME Python Version: (2, 26, 1)
Psyco Not Installed
========================================================
Running Instance: 0
========================================================
Python Path: /home/aidenn/usr/lib/python2.6/site-packages
Plugin Path: /home/aidenn/usr/share/scribes/plugins
Data Path: /home/aidenn/usr/share/scribes
Executable Path: /home/aidenn/usr/bin
========================================================

Revision history for this message
Mystilleef (mystilleef) wrote :

Thanks for that. Seems one needs to explicity specify signature types in DBUS APIs for 64-bits systems. I don't have a 64-bit system, so please help me test. Possible fix in build455

Revision history for this message
Aidenn (aidenn) wrote :

Thank you, it works fine now. :)

Revision history for this message
Mystilleef (mystilleef) wrote :

Thanks for helping me out. Couldn't have done it without you.

Mystilleef (mystilleef)
Changed in scribes:
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.