Puppy Linux Discussion Forum Forum Index Puppy Linux Discussion Forum
Puppy HOME page : puppylinux.com
"THE" alternative forum : puppylinux.info
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

The time now is Fri 25 Apr 2014, 03:52
All times are UTC - 4
 Forum index » Taking the Puppy out for a walk » Suggestions
Rewriting pup_event in C
Moderators: Flash, Ian, JohnMurga
Post new topic   Reply to topic View previous topic :: View next topic
Page 3 of 7 [99 Posts]   Goto page: Previous 1, 2, 3, 4, 5, 6, 7 Next
Author Message
jemimah


Joined: 26 Aug 2009
Posts: 4309
Location: Tampa, FL

PostPosted: Tue 24 Apr 2012, 11:33    Post subject:  

Dude! You are my new hero. Let me know how I can help you with this project!
Back to top
View user's profile Send private message Visit poster's website 
jemimah


Joined: 26 Aug 2009
Posts: 4309
Location: Tampa, FL

PostPosted: Tue 24 Apr 2012, 11:50    Post subject:  

Mounting is working (maybe some issues with ntfs).
EDIT: nevermind about ntfs - it seems fine now.

But unmounting is segfaulting
Code:

Program received signal SIGSEGV, Segmentation fault.
0x0809e8f3 in ?? ()
(gdb) bt
#0  0x0809e8f3 in ?? ()
#1  0xb78ecac5 in g_simple_async_result_complete () from /usr/lib/libgio-2.0.so.0
#2  0xb7144524 in pup_volume_monitor_generic_cb (conv=0x8220b80, rcvd_data=0x8183f10, is_new=0, user_data=0x0, conv_user_data=0xb5e07598)
    at volume_monitor.c:324
#3  0xb713e3f9 in ps_conv_mgr_sorter_cb (sock=0x812f120, data=0xbffff514, user_data=0x81364c0) at conv.c:156
#4  0xb713be02 in pup_sock_common_marshaller (hook=0x0, marshal_data=0xbffff458) at core.c:250
#5  0xb774d91e in g_hook_list_marshal_check () from /usr/lib/libglib-2.0.so.0
#6  0xb713c22b in pup_sock_raise (sock=0x812f120, event=1, has_data=1, cb_data=0xbffff514) at core.c:240
#7  0xb713cff9 in pup_sock_try_receive_block (sock=0x812f120, timer=0x8183f90, data_read=0xbffff558, error=0xbffff5a8) at transfer.c:262
#8  0xb713d172 in pup_sock_receive (sock=0x812f120, timeout=0, num_blocks=4294967295, error=0xbffff5a8) at transfer.c:296
#9  0xb713d33f in pup_sock_input_callback (sock=0x812f120) at transfer.c:324
#10 0xb713c0e9 in pup_sock_event_source_dispatch (source=0x81467e8, callback=0, data=0x0) at core.c:376
#11 0xb775d2cd in g_main_dispatch () from /usr/lib/libglib-2.0.so.0
#12 0xb775def4 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#13 0xb775e0dc in g_main_context_iterate () from /usr/lib/libglib-2.0.so.0
#14 0xb775e54d in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
Back to top
View user's profile Send private message Visit poster's website 
akash_rawal

Joined: 25 Aug 2010
Posts: 232
Location: ISM Dhanbad, Jharkhand, India

PostPosted: Tue 24 Apr 2012, 13:03    Post subject:  

jemimah wrote:

Mounting is working (maybe some issues with ntfs).
EDIT: nevermind about ntfs - it seems fine now.

If you are getting errors like "Error code 4 (Some other error)", then it is a known problem.

This occurs when drive is mounted, but /proc/mounts is not updated in time.

Do you know how to wait for kernel to update /proc/mounts? inotify doesn't seem to work.

jemimah wrote:

Code:

(gdb) bt
#0  0x0809e8f3 in ?? ()


It looks like problem of invalid function pointer.

I hope you are testing on Thunar?

I will now download thunar-volman to test it myself now. Thanks for info.
Back to top
View user's profile Send private message 
akash_rawal

Joined: 25 Aug 2010
Posts: 232
Location: ISM Dhanbad, Jharkhand, India

PostPosted: Tue 24 Apr 2012, 13:33    Post subject:  

Well I'm unable to get Thunar running on GIO.

After installing thunar-volman from Ubuntu Lucid repository, and now I get this.


How do you get Thunar use GIO instead of hal?
Back to top
View user's profile Send private message 
jemimah


Joined: 26 Aug 2009
Posts: 4309
Location: Tampa, FL

PostPosted: Tue 24 Apr 2012, 14:40    Post subject:  

Thunar-volman is not needed.

Thunar itself can handle mounting/unmounting. You might need a pretty new version of thunar.
screenshot.jpg
 Description   
 Filesize   43.57 KB
 Viewed   672 Time(s)

screenshot.jpg

Back to top
View user's profile Send private message Visit poster's website 
jemimah


Joined: 26 Aug 2009
Posts: 4309
Location: Tampa, FL

PostPosted: Tue 24 Apr 2012, 15:19    Post subject:  

I'm getting these now. I don't think I saw them previously.

Code:

(Thunar:1744): GLib-GObject-WARNING **: invalid uninstantiatable type `(null)' in cast to `GMount'

(Thunar:1744): GLib-GIO-CRITICAL **: g_mount_unmount_finish: assertion `G_IS_MOUNT (mount)' failed
Segmentation fault


The unmounting operation actually does complete, by the way.
Back to top
View user's profile Send private message Visit poster's website 
technosaurus


Joined: 18 May 2008
Posts: 4134

PostPosted: Tue 24 Apr 2012, 15:43    Post subject:  

PUP_VOLUME_SET_MOUNT is a macro that sets object->mount to mnt by casting mnt as a gpointer ... if gpointer points to a NULL...

could either replace it with a function that checks for null (or mod the macro) or check for null prior to each PUP_VOLUME_SET_MOUNT

_________________
Web Programming - Pet Packaging 100 & 101
Back to top
View user's profile Send private message 
jemimah


Joined: 26 Aug 2009
Posts: 4309
Location: Tampa, FL

PostPosted: Tue 24 Apr 2012, 16:01    Post subject:  

I recompiled Thunar with debug symbols so you could see the complete stack.


Code:
(gdb) bt
#0  0x0809e8f3 in thunar_shortcuts_view_unmount_finish (object=0x8173350, result=0x82791a8, user_data=0x81cc000) at thunar-shortcuts-view.c:1448
#1  0xb78ecac5 in g_simple_async_result_complete () from /usr/lib/libgio-2.0.so.0
#2  0xb7144524 in pup_volume_monitor_generic_cb (conv=0x8220560, rcvd_data=0x8165560, is_new=0, user_data=0x0, conv_user_data=0x82791a8)
    at volume_monitor.c:324
#3  0xb713e3f9 in ps_conv_mgr_sorter_cb (sock=0x812f120, data=0xbffff504, user_data=0x81364c0) at conv.c:156
#4  0xb713be02 in pup_sock_common_marshaller (hook=0x0, marshal_data=0xbffff448) at core.c:250
#5  0xb774d91e in g_hook_list_marshal_check () from /usr/lib/libglib-2.0.so.0
#6  0xb713c22b in pup_sock_raise (sock=0x812f120, event=1, has_data=1, cb_data=0xbffff504) at core.c:240
#7  0xb713cff9 in pup_sock_try_receive_block (sock=0x812f120, timer=0x8161c00, data_read=0xbffff548, error=0xbffff598) at transfer.c:262
#8  0xb713d172 in pup_sock_receive (sock=0x812f120, timeout=0, num_blocks=4294967295, error=0xbffff598) at transfer.c:296
#9  0xb713d33f in pup_sock_input_callback (sock=0x812f120) at transfer.c:324
#10 0xb713c0e9 in pup_sock_event_source_dispatch (source=0x8145c00, callback=0, data=0x0) at core.c:376
#11 0xb775d2cd in g_main_dispatch () from /usr/lib/libglib-2.0.so.0
#12 0xb775def4 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#13 0xb775e0dc in g_main_context_iterate () from /usr/lib/libglib-2.0.so.0
#14 0xb775e54d in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#15 0xb7cd3ae9 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#16 0x08062a76 in main (argc=1, argv=0x822cad0) at main.c:294
Back to top
View user's profile Send private message Visit poster's website 
sunburnt


Joined: 08 Jun 2005
Posts: 4988
Location: Arizona, U.S.A.

PostPosted: Tue 24 Apr 2012, 22:42    Post subject:  

If I may... a suggestion for your suggestion.

I don`t care for partition icons on the desktop, maybe rewrite HotPup too?

Putting the icons on a slide-out panel would cleanup the desktop.
Back to top
View user's profile Send private message 
akash_rawal

Joined: 25 Aug 2010
Posts: 232
Location: ISM Dhanbad, Jharkhand, India

PostPosted: Wed 25 Apr 2012, 13:17    Post subject:  

jemimah wrote:

I'm getting these now. I don't think I saw them previously.

Code:

(Thunar:1744): GLib-GObject-WARNING **: invalid uninstantiatable type `(null)' in cast to `GMount'

(Thunar:1744): GLib-GIO-CRITICAL **: g_mount_unmount_finish: assertion `G_IS_MOUNT (mount)' failed
Segmentation fault


The unmounting operation actually does complete, by the way.


Thanks, I think I got to the root of the problem.

When a drive is unmounted, the daemon first sends a message that a drive is unmounted so that data is kept up-to-date. In this process the GMount object is destroyed. After that message arrives stating unmount operation has completed, and then thunar tries to access the destroyed object and crashes.

Now the mount function references the object, so that it is destroyed only after message arrives stating unmount operation has completed. Hope this solves the issue. Please test. (See first post)
Back to top
View user's profile Send private message 
jemimah


Joined: 26 Aug 2009
Posts: 4309
Location: Tampa, FL

PostPosted: Wed 25 Apr 2012, 14:23    Post subject:  

No luck. I'm still getting the same error. Sad
Back to top
View user's profile Send private message Visit poster's website 
akash_rawal

Joined: 25 Aug 2010
Posts: 232
Location: ISM Dhanbad, Jharkhand, India

PostPosted: Thu 26 Apr 2012, 12:58    Post subject:  

Well, I had guessed that on reading the corresponding source code of thunar on git.

I downloaded the latest thunar, compiled and ran it myself, and found that it was destroying the mount object after every access. So I modified my module to duplicate the object before starting unmount operation ... and this works!

See first post.
Back to top
View user's profile Send private message 
jemimah


Joined: 26 Aug 2009
Posts: 4309
Location: Tampa, FL

PostPosted: Thu 26 Apr 2012, 13:22    Post subject:  

Perfect! It works with xfdesktop too.

Saluki will have this in the next release and I'll be able to simplify pup_event_frontend_d to only deal with saving and such.

Fantastic!

I am getting error code 4 sometimes when mounting. Can you add a sleep or something somewhere to work around it?
Back to top
View user's profile Send private message Visit poster's website 
jemimah


Joined: 26 Aug 2009
Posts: 4309
Location: Tampa, FL

PostPosted: Thu 26 Apr 2012, 19:18    Post subject:  

Something's still a little screwy with unmounting.

If you compile thunar with notification support, you get a notification that the unmount is flushing to disk. But the notification never goes away when the unmount completes.

I can definitely work around this but I think the function call is not returning like it is supposed to.
Back to top
View user's profile Send private message Visit poster's website 
akash_rawal

Joined: 25 Aug 2010
Posts: 232
Location: ISM Dhanbad, Jharkhand, India

PostPosted: Sun 29 Apr 2012, 14:36    Post subject:  

jemimah wrote:

I am getting error code 4 sometimes when mounting. Can you add a sleep or something somewhere to work around it?

I found a workaround.

Although /proc/mounts isn't updated immediately, the mounted drive is accessible as soon as mount exits.

See first post for update. The error code 4 no longer appears for successful mount. (I am relying on mount to exit with non-zero exit code on failure.)

jemimah wrote:

If you compile thunar with notification support, you get a notification that the unmount is flushing to disk. But the notification never goes away when the unmount completes.

But I don't get a notification at all.
On unmounting I get this output:
Code:

libnotify-Message: GetServerInformation call failed: The name org.freedesktop.Notifications was not provided by any .service files
libnotify-Message: Error getting spec version

(thunar:14747): libnotify-CRITICAL **: notify_get_server_info: assertion `proxy != NULL' failed
Back to top
View user's profile Send private message 
Display posts from previous:   Sort by:   
Page 3 of 7 [99 Posts]   Goto page: Previous 1, 2, 3, 4, 5, 6, 7 Next
Post new topic   Reply to topic View previous topic :: View next topic
 Forum index » Taking the Puppy out for a walk » Suggestions
Jump to:  

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group
[ Time: 0.0899s ][ Queries: 13 (0.0058s) ][ GZIP on ]