Page 1 of 1

Unison Segmentation Fault [SOLVED]

PostPosted: Jun 22nd, '15, 18:20
by kirmonkey
Hi all,

I'm preparing a laptop for some summer work and want to be able to sync any changes I make over that period back to my main computer in the autumn. I'll be working entirely away from home for 10 weeks.

I've considered using a cloud based service but size limits would mean any changes I make over the summer would have to be collated in a limited number of folder/areas. I've decided instead to use Unison to sync changes in my ~/home folders back to my main computer in one go.

I'm receiving a segmentation fault in Unison whilst setting up the sync at the 'choose local directory' stage. This is on my main computer. I'll carry out the sync over ssh on the local network.

Below is the last 100 lines or so of output from strace unison:

Code: Select all
recvfrom(3, "\1 \334\220\0\0\0\0\324\2\0\0\2\0\2\0\20\1\274\0\0\0\0\0\0\0\0\0\0\0\0\0", 4096, 0, NULL, NULL) = 32
recvfrom(3, 0xc49b34, 4096, 0, 0, 0)    = -1 EAGAIN (Resource temporarily unavailable)
recvfrom(3, 0xc49b34, 4096, 0, 0, 0)    = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=POLLIN|POLLOUT}], 1, 4294967295) = 1 ([{fd=3, revents=POLLOUT}])
writev(3, [{"\214\4\6\0\232\36`\6+\35`\6&\0\0\0\0\4\0\0\1\0\0\0\214\10\t\0\3\32\7\0"..., 564}, {NULL, 0}, {"", 0}], 3) = 564
recvfrom(3, 0xc49b34, 4096, 0, 0, 0)    = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=4, events=POLLIN}, {fd=3, events=POLLIN}], 2, 0) = 0 (Timeout)
poll([{fd=3, events=POLLIN|POLLOUT}], 1, 4294967295) = 1 ([{fd=3, revents=POLLOUT}])
writev(3, [{"\212\5\4\0\233\36`\6\0\0\250\0\20\1\24\0\220\3\4\0,\35`\6\233\36`\6\0\0\0\0"..., 40}, {NULL, 0}, {"", 0}], 3) = 40
recvfrom(3, 0xc49b34, 4096, 0, 0, 0)    = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=4, events=POLLIN}, {fd=3, events=POLLIN}], 2, 4294967295) = 1 ([{fd=3, revents=POLLIN}])
recvfrom(3, "\5\1\347\220g\335\227\4\324\2\0\0(\35`\6+\35`\6f\10z\1A\0\257\0\20\1\1\0", 4096, 0, NULL, NULL) = 32
recvfrom(3, 0xc49b34, 4096, 0, 0, 0)    = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=POLLIN|POLLOUT}], 1, 4294967295) = 1 ([{fd=3, revents=POLLOUT}])
writev(3, [{"\33\5\2\0\0\0\0\0", 8}, {NULL, 0}, {"", 0}], 3) = 8
recvfrom(3, 0xc49b34, 4096, 0, 0, 0)    = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=POLLIN|POLLOUT}], 1, 4294967295) = 1 ([{fd=3, revents=POLLIN|POLLOUT}])
recvfrom(3, "\10\2\350\220g\335\227\4\324\2\0\0(\35`\6\0\0\0\0f\10z\1A\0\257\0\20\0\2\2"..., 4096, 0, NULL, NULL) = 64
writev(3, [{"+\5\1\0 \0\2\0\0\0\0\0", 12}, {NULL, 0}, {"", 0}], 3) = 12
recvfrom(3, 0xc49b34, 4096, 0, 0, 0)    = -1 EAGAIN (Resource temporarily unavailable)
write(4, "\1\0\0\0\0\0\0\0", 8)         = 8
poll([{fd=3, events=POLLIN|POLLOUT}], 1, 4294967295) = 1 ([{fd=3, revents=POLLIN|POLLOUT}])
recvfrom(3, "\1\2\351\220\0\0\0\0I\6`\6\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096, 0, NULL, NULL) = 128
writev(3, [{"\n\5\2\0+\35`\6\2\0\4\0H\6`\6\1\0\0\0\0\0\0\0\2\36\4\0>\1`\6"..., 220}, {NULL, 0}, {"", 0}], 3) = 220
recvfrom(3, 0xc49b34, 4096, 0, 0, 0)    = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=POLLIN|POLLOUT}], 1, 4294967295) = 1 ([{fd=3, revents=POLLOUT}])
writev(3, [{"+\5\1\0 \35\2\0\0\0\0\0", 12}, {NULL, 0}, {"", 0}], 3) = 12
recvfrom(3, 0xc49b34, 4096, 0, 0, 0)    = -1 EAGAIN (Resource temporarily unavailable)
write(2, "\n(unison:21385): Gtk-CRITICAL **"..., 144
(unison:21385): Gtk-CRITICAL **: gtk_tree_model_filter_get_value: assertion 'GTK_TREE_MODEL_FILTER (model)->priv->stamp == iter->stamp' failed
) = 144
write(2, "\n(unison:21385): GLib-GObject-WA"..., 79
(unison:21385): GLib-GObject-WARNING **: gtype.c:4215: type id '0' is invalid
) = 79
write(2, "\n(unison:21385): GLib-GObject-WA"..., 120
(unison:21385): GLib-GObject-WARNING **: can't peek value table for type '<invalid>' which is not currently referenced
) = 120
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x30} ---
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
rt_sigaction(SIGSEGV, {SIG_DFL, [], SA_RESTORER, 0x7efd99de9720}, NULL, 8) = 0
rt_sigreturn()                          = 0
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x30} ---
+++ killed by SIGSEGV +++
Segmentation fault
[rick@rick-tower ~]$



System:

Mageia 4 64 bit
Unison 2.40.102-3.mga4

dmesg output:

Code: Select all
[77434.507696] unison[26484]: segfault at 30 ip 00007f3ddd5e6bc5 sp 00007ffc6b1ea120 error 4 in libgtk-x11-2.0.so.0.2400.22[7f3ddd3e6000+426000]


I couldn't find a 'what to include in a post' guide so pop me a message if you need more information.

Regards

The Monkey.

Re: Unison Segmentation Fault

PostPosted: Jun 22nd, '15, 19:53
by morgano
When you find a bug, you can try to search at bugs.mageia.org
Looking for unison finds https://bugs.mageia.org/show_bug.cgi?id=15138
You may want to add your details as per above test there, thanks

Re: Unison Segmentation Fault

PostPosted: Jun 22nd, '15, 20:19
by doktor5000
From what I remember that is just an issue with the filepicker and GTK theme. Select another GTK theme and it should work.

Re: Unison Segmentation Fault

PostPosted: Jun 22nd, '15, 21:50
by kirmonkey
Hi both,

Changing theme worked a treat.

How to for reference:

Code: Select all
# urpmi gtk-qt-engine

Open System Settings
Application Appearance
GTK Styles and Fonts
GTK Styles

I'll mark this as solved and post onto the bug report.

Thank you.

#Edited for clarity#

Re: Unison Segmentation Fault [SOLVED]

PostPosted: Jun 23rd, '15, 07:52
by kirmonkey
Additional note:

Having chosen to 'Use my KDE style in GTK applications' you may find that GTK applications don't open with a message similar to this:

###!!! ABORT: JS_SetICUMemoryFunctions failed.: file /home/iurt/rpmbuild/BUILD/thunderbird-31.7.0/comm-esr31/mozilla/xpcom/build/nsXPComInit.cpp, line 744


Returning setting back to 'use another style' in the GTK Styles and Fonts setting outlined in my post above works. This is workable for me because I don't expect to be using Unison on a regular basis.

My chosen style is QtCurve.

Re: Unison Segmentation Fault [SOLVED]

PostPosted: Jun 23rd, '15, 10:25
by morgano
Ah yes, for example Firefox fail to launch...
The "use another style" got set to Qt4 when i earlier chose "Use my KDE style".
Now I choose "use another style" and choose oxygen-gtk and firefox works.
But not unison, until changed back, log out of KDE and in again...
I would not call this solved, but a workaround.

I find it better to use other sync utilities instead: (all in mageia repo)
FreeFileSync - nice looking, many filter, compare, sync options
synkron - similar to unison but can synk more than two roots concurrently
krusader - very potential dual pane file manager that can sync dirs - including following symlinks
luckybackup - works for this use
ownCloud - to own server on a computer you own, is not trivial to set up but documented in our wiki. And/Or: Some ISP also offer it (i set one up at mine using very simple steps, and have many GB space included in the cost of my web site fee.
Dropbox - the mageia package kfilebox often fail but then i use file and instructions from dropbox.com (limited in space unless you pay, but i list it here for completeness)