Bug 233772 - fwbackups: UI usability issues
Summary: fwbackups: UI usability issues
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: fwbackups
Version: 6
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Stewart Adam
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2007-03-24 21:39 UTC by Bernard Johnson
Modified: 2007-11-30 22:12 UTC (History)
0 users

Fixed In Version: fwbackups-1.43.0-0.1.rc2.fc6
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2007-05-25 21:48:28 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Bernard Johnson 2007-03-24 21:39:46 UTC
Description of problem:
There are two big UI problems when using fwbackups:
1) when it's busy, it doesn't display a busy cursor
2) when it's backing up it doesn't give any status updates or redraw it's screen

Between these two, when a backup starts it appears that fwbackups has crashed. 
The only way I can tell it didn't is to listen for the disks grinding on my NAS. :)

Version-Release number of selected component (if applicable):
fwbackups-1.42.3a-1.fc6

How reproducible:
Always

Comment 1 Stewart Adam 2007-03-25 14:40:34 UTC
Version 1.43.0 (in beta) fixes both of these, it's currently extras-development
if you wish to try it. Once it's been tested I will build for FC-5 and FC-6.

Comment 2 Bernard Johnson 2007-03-25 19:06:36 UTC
Can you take a look at bug #233799 as well and I'll test them both at the same time?

Comment 3 Stewart Adam 2007-03-25 19:55:17 UTC
Sure - I added a comment to #233799, it should also be fixed in 1.43.0. In the
extras-development fwbackups will require to update to python2.5, which will
probably pull in half the development tree. If you need a FC6 rpm let me know. 

Comment 4 Bernard Johnson 2007-03-25 20:16:06 UTC
I would like the fc6 rpm if you could.

Comment 5 Stewart Adam 2007-03-27 21:53:13 UTC
Here's a RPM for FC6 I build with Mock:
http://www.diffingo.com/downloads/fwbackups/fwbackups-1.43.0-0.1.beta2.fc6.noarch.rpm

Comment 6 Bernard Johnson 2007-03-27 22:02:07 UTC
I ran it from a terminal and got the first traceback, then it crashed in the
middle of defining a backup set:

[root@snowflake tmp]# fwbackups
Traceback (most recent call last):
  File "/usr/lib/python2.4/site-packages/fwbackups/guicallbacks.py", line 640,
in on_RestoreSetNameBox_changed
    self._populateDates(self.ui.RestoreSetNameBox.get_model().get_value(\
TypeError: iter must be a GtkTreeIter
*** glibc detected *** python: free(): invalid pointer: 0x09731ab8 ***
======= Backtrace: =========
/lib/libc.so.6[0x41109d]
/lib/libc.so.6(cfree+0x90)[0x4146f0]
/lib/libglib-2.0.so.0(g_free+0x31)[0x68d6e1]
/usr/lib/libgtk-x11-2.0.so.0[0x52e9fcc]
/lib/libgobject-2.0.so.0(g_object_unref+0x16c)[0x70e0dc]
/usr/lib/libgtk-x11-2.0.so.0[0x536bae7]
/usr/lib/libgtk-x11-2.0.so.0[0x536c387]
/usr/lib/libgtk-x11-2.0.so.0[0x536fcaa]
/usr/lib/libgtk-x11-2.0.so.0[0x536ffd1]
/usr/lib/libgtk-x11-2.0.so.0[0x53d3fad]
/lib/libgobject-2.0.so.0(g_closure_invoke+0x12b)[0x70bd9b]
/lib/libgobject-2.0.so.0[0x71c433]
/lib/libgobject-2.0.so.0(g_signal_emit_valist+0x8c7)[0x71d957]
/lib/libgobject-2.0.so.0(g_signal_emit+0x29)[0x71db19]
/usr/lib/libgtk-x11-2.0.so.0(gtk_tree_view_row_activated+0x61)[0x54c8781]
/usr/lib/libgtk-x11-2.0.so.0[0x54d7625]
/usr/lib/libgtk-x11-2.0.so.0[0x53d5a60]
/lib/libgobject-2.0.so.0[0x70a589]
/lib/libgobject-2.0.so.0(g_closure_invoke+0x12b)[0x70bd9b]
/lib/libgobject-2.0.so.0[0x71ca83]
/lib/libgobject-2.0.so.0(g_signal_emit_valist+0x68f)[0x71d71f]
/lib/libgobject-2.0.so.0(g_signal_emit+0x29)[0x71db19]
/usr/lib/libgtk-x11-2.0.so.0[0x54ea508]
/usr/lib/libgtk-x11-2.0.so.0(gtk_propagate_event+0x183)[0x53cee33]
/usr/lib/libgtk-x11-2.0.so.0(gtk_main_do_event+0x317)[0x53d0037]
/usr/lib/libgdk-x11-2.0.so.0[0x93112a]
/lib/libglib-2.0.so.0(g_main_context_dispatch+0x182)[0x686442]
/lib/libglib-2.0.so.0[0x68941f]
/lib/libglib-2.0.so.0(g_main_loop_run+0x1a9)[0x6897c9]
/usr/lib/libgtk-x11-2.0.so.0(gtk_dialog_run+0x18b)[0x5350cbb]
/usr/lib/python2.4/site-packages/gtk-2.0/gtk/_gtk.so[0x1e9e52]
/usr/lib/libpython2.4.so.1.0(PyEval_EvalFrame+0x49a8)[0x6856f28]
/usr/lib/libpython2.4.so.1.0(PyEval_EvalFrame+0x4d5d)[0x68572dd]
/usr/lib/libpython2.4.so.1.0(PyEval_EvalFrame+0x4d5d)[0x68572dd]
/usr/lib/libpython2.4.so.1.0(PyEval_EvalCodeEx+0x845)[0x68581b5]
/usr/lib/libpython2.4.so.1.0[0x6809faa]
/usr/lib/libpython2.4.so.1.0(PyObject_Call+0x37)[0x67f1ec7]
/usr/lib/libpython2.4.so.1.0[0x67f8538]
/usr/lib/libpython2.4.so.1.0(PyObject_Call+0x37)[0x67f1ec7]
/usr/lib/libpython2.4.so.1.0(PyEval_CallObjectWithKeywords+0x7c)[0x68519dc]
/usr/lib/libpython2.4.so.1.0(PyObject_CallObject+0x2c)[0x67f2a4c]
/usr/lib/python2.4/site-packages/gtk-2.0/gobject/_gobject.so[0xf3e0c7]
/lib/libgobject-2.0.so.0(g_closure_invoke+0x12b)[0x70bd9b]
/lib/libgobject-2.0.so.0[0x71c433]
/lib/libgobject-2.0.so.0(g_signal_emit_valist+0x8c7)[0x71d957]
/lib/libgobject-2.0.so.0(g_signal_emit+0x29)[0x71db19]
/usr/lib/libgtk-x11-2.0.so.0(gtk_button_clicked+0x53)[0x5304e13]
/usr/lib/libgtk-x11-2.0.so.0[0x5306a5e]
/lib/libgobject-2.0.so.0(g_cclosure_marshal_VOID__VOID+0x49)[0x7190f9]
/lib/libgobject-2.0.so.0[0x70a589]
/lib/libgobject-2.0.so.0(g_closure_invoke+0x20d)[0x70be7d]
/lib/libgobject-2.0.so.0[0x71c8ca]
/lib/libgobject-2.0.so.0(g_signal_emit_valist+0x8c7)[0x71d957]
/lib/libgobject-2.0.so.0(g_signal_emit+0x29)[0x71db19]
/usr/lib/libgtk-x11-2.0.so.0(gtk_button_released+0x53)[0x5304ea3]
/usr/lib/libgtk-x11-2.0.so.0[0x5304f01]
/usr/lib/libgtk-x11-2.0.so.0[0x53d5a60]
/lib/libgobject-2.0.so.0[0x70a589]
/lib/libgobject-2.0.so.0(g_closure_invoke+0x20d)[0x70be7d]
/lib/libgobject-2.0.so.0[0x71ca83]
/lib/libgobject-2.0.so.0(g_signal_emit_valist+0x68f)[0x71d71f]
/lib/libgobject-2.0.so.0(g_signal_emit+0x29)[0x71db19]
/usr/lib/libgtk-x11-2.0.so.0[0x54ea508]
======= Memory map: ========
00110000-002e1000 r-xp 00000000 fd:00 620164    
/usr/lib/python2.4/site-packages/gtk-2.0/gtk/_gtk.so
002e1000-00306000 rwxp 001d1000 fd:00 620164    
/usr/lib/python2.4/site-packages/gtk-2.0/gtk/_gtk.so
00306000-00370000 r-xp 00000000 fd:00 2896108    /usr/lib/libcairo.so.2.9.3
00370000-00372000 rwxp 00069000 fd:00 2896108    /usr/lib/libcairo.so.2.9.3
00372000-00375000 r-xp 00000000 fd:00 3072424   
/usr/lib/python2.4/site-packages/gtk-2.0/pangocairo.so
00375000-00376000 rwxp 00002000 fd:00 3072424   
/usr/lib/python2.4/site-packages/gtk-2.0/pangocairo.so
00376000-0037f000 r-xp 00000000 fd:00 2219560    /lib/libnss_files-2.5.so
0037f000-00380000 r-xp 00008000 fd:00 2219560    /lib/libnss_files-2.5.so
00380000-00381000 rwxp 00009000 fd:00 2219560    /lib/libnss_files-2.5.so
00381000-00384000 r-xp 00000000 fd:00 3010849   
/usr/lib/python2.4/lib-dynload/cStringIO.so
00384000-00385000 rwxp 00003000 fd:00 3010849   
/usr/lib/python2.4/lib-dynload/cStringIO.so
00385000-00387000 r-xp 00000000 fd:00 2220394    /lib/libutil-2.5.so
00387000-00388000 r-xp 00001000 fd:00 2220394    /lib/libutil-2.5.so
00388000-00389000 rwxp 00002000 fd:00 2220394    /lib/libutil-2.5.so
00389000-0038d000 r-xp 00000000 fd:00 3106667   
/usr/lib/python2.4/site-packages/gtk-2.0/gtk/glade.so
0038d000-0038e000 rwxp 00003000 fd:00 3106667   
/usr/lib/python2.4/site-packages/gtk-2.0/gtk/glade.so
0038e000-003a7000 r-xp 00000000 fd:00 2219752    /lib/ld-2.5.so
003a7000-003a8000 r-xp 00018000 fd:00 2219752    /lib/ld-2.5.so
003a8000-003a9000 rwxp 00019000 fd:00 2219752    /lib/ld-2.5.so
003ab000-004e2000 r-xp 00000000 fd:00 2219755    /lib/libc-2.5.so
004e2000-004e4000 r-xp 00137000 fd:00 2219755    /lib/libc-2.5.so
004e4000-004e5000 rwxp 00139000 fd:00 2219755    /lib/libc-2.5.so
004e5000-004e8000 rwxp 004e5000 00:00 0 
004ea000-0050f000 r-xp 00000000 fd:00 2220385    /lib/libm-2.5.so
0050f000-00510000 r-xp 00024000 fd:00 2220385    /lib/libm-2.5.so
00510000-00511000 rwxp 00025000 fd:00 2220385    /lib/libm-2.5.so
00513000-00515000 r-xp 00000000 fd:00 2220383    /lib/libdl-2.5.so
00515000-00516000 r-xp 00001000 fd:00 2220383    /lib/libdl-2.5.so
00516000-00517000 rwxp 00002000 fd:00 2220383    /lib/libdl-2.5.so
00519000-0052c000 r-xp 00000000 fd:00 2220378   /usr/bin/fwbackups: line 18:
15799 Aborted                 python /usr/share/fwbackups/fwbackups-runapp.py "$@"




Comment 7 Stewart Adam 2007-03-28 00:33:04 UTC
Well, the backtrace I have no idea why it happened or how to fix it... however
for  the Iter that's fine, that happens when there's no backup archives for it
to look at. This happens every time?

Comment 8 Bernard Johnson 2007-03-28 06:05:04 UTC
I haven't had the backtrace since the first run.

I was able to run a backup set.  Here are my results:

1) The GtkTreeIter traceback only happens, as you said, when there is no backup
archive.

2) There do not seem to be issues with with bug #233799 anymore

3) The application shows a busy cursor when it's busy.

4) The gui also properly updates itself when it's busy.

I assume you'll also want to know what went wrong.

1) Although the action buttons are disabled when they should be, the menu is not
and you can get to items that you shouldn't (ie. get to restore while a backup
is running).  Options button is also available when the backup is running.

2) Cancelling a backup job doesn't seem to do anything.  Eventually I had to
kill the application, and even then the backup job (tar process) continued until
I killed it too.

3) rsync is totally broken for me.  It terminates within the first two minutes
(after the actual file copy starts).    I would suspect a problem in running a
rsync to the destination but running rsync alone to backup manually has already
proven reliable for me.


Hmm... well now that I'm trying to reproduce it to get the error, it's
working... heh.



Comment 9 Stewart Adam 2007-03-28 22:34:28 UTC
I've coded the fix for the menus and the Options button, it will be in the next
Beta release I make... As for the cancel, what happens is fwbackups will cleanly
finish the operation, and stop at defined checkpoints if a cancel is requested.
So if a cancel is requested, it will stop at the item in the list that occurs first:
- Execution of the Before command
- Creating package lists / disk info
- Any backup path
- Compressing the backup
- Execution of the After command
This way nothing is left half-finished, at least there is some sort of solid result.

For #3, can I have the paths you are attempting to backup and your destination?
I'm not sure what is causing the failure, but I'll run "fake" tests with the paths.

Comment 10 Bernard Johnson 2007-04-02 17:07:16 UTC
(In reply to comment #9)
> As for the cancel, what happens is fwbackups will cleanly
> finish the operation, and stop at defined checkpoints if a cancel is requested.
> So if a cancel is requested, it will stop at the item in the list that occurs
first:
> - Execution of the Before command
> - Creating package lists / disk info
> - Any backup path
> - Compressing the backup
> - Execution of the After command
> This way nothing is left half-finished, at least there is some sort of solid
result.

I think that most people would expect Cancel to leave the backup in a
half-finished state.  Doesn't seem right to hit cancel and to have to wait for
hours.  Maybe a warning that it will be an unreliable backup and then just
terminate it?

 
> For #3, can I have the paths you are attempting to backup and your destination?
> I'm not sure what is causing the failure, but I'll run "fake" tests with the
paths.

I will investigate this more first.  The system that I was backing up
mysteriously died overnight after I posted this message (dead hard drive, dead
power supply).  I want to make sure it wasn't related to that.


RFE:  For rsync backups, please give the ability to not use dated directories. 
That way, a fast sync can be setup that just snapshots the data defined in the
backup job.  Also, the ability to use rsync over ssh would be superb.



Comment 11 Bernard Johnson 2007-04-03 07:08:22 UTC
Is there any way to easily test this kind of error.  This was caused when I ran
fwbackups with rsync across nfs.  On the nfs server I have squash_root, so
nothing can be mapped to uid 0 there.  This is the chaos that ensued.  The
backup also terminated, but fwbackups thought it was still running.

INFO :: Apr 03 00:52:37: fwbackups administrator started
INFO :: Apr 03 00:52:54: Starting automatic backup of set 'System Backup'
ERROR :: Apr 03 00:53:05: Error backing up path ''/opt'
"/net/terastation/mnt/array1/backup/fwbackups-snowflake-root/Backup-System
Backup-2007-04-03"'
ERROR :: Apr 03 00:53:05: Output:
Return value: 23
stdout: []
stderr: ['rsync: chown
"/net/terastation/mnt/array1/backup/fwbackups-snowflake-root/Backup-System
Backup-2007-04-03/opt" failed: Operation not permitted (1)\n', 'rsync error:
some files could not be transferred (code 23) at main.c(977) [sender=2.6.9]\n']
ERROR :: Apr 03 00:53:05: Error backing up path ''/srv'
"/net/terastation/mnt/array1/backup/fwbackups-snowflake-root/Backup-System
Backup-2007-04-03"'
ERROR :: Apr 03 00:53:06: Output:
Return value: 23
stdout: []
stderr: ['rsync: chown
"/net/terastation/mnt/array1/backup/fwbackups-snowflake-root/Backup-System
Backup-2007-04-03/srv" failed: Operation not permitted (1)\n', 'rsync error:
some files could not be transferred (code 23) at main.c(977) [sender=2.6.9]\n']
ERROR :: Apr 03 00:53:08: Error backing up path ''/root'
"/net/terastation/mnt/array1/backup/fwbackups-snowflake-root/Backup-System
Backup-2007-04-03"'
ERROR :: Apr 03 00:53:08: Output:
Return value: 23
stdout: []
stderr: ['rsync: chown
"/net/terastation/mnt/array1/backup/fwbackups-snowflake-root/Backup-System
Backup-2007-04-03/root" failed: Operation not permitted (1)\n', 'rsync: chown
"/net/terastation/mnt/array1/backup/fwbackups-snowflake-root/Backup-System
Backup-2007-04-03/root/.config" failed: Operation not permitted (1)\n', 'rsync:
chown "/net/terastation/mnt/array1/backup/fwbackups-snowflake-root/Backup-System
Backup-2007-04-03/root/.config/gtk-2.0" failed: Operation not permitted (1)\n',
'rsync: chown
"/net/terastation/mnt/array1/backup/fwbackups-snowflake-root/Backup-System
Backup-2007-04-03/root/.dbus" failed: Operation not permitted (1)\n', 'rsync:
chown "/net/terastation/mnt/array1/backup/fwbackups-snowflake-root/Backup-System
Backup-2007-04-03/root/.dbus/session-bus" failed: Operation not permitted
(1)\n', 'rsync: chown
"/net/terastation/mnt/array1/backup/fwbackups-snowflake-root/Backup-System
Backup-2007-04-03/root/.fwbackups" failed: Operation not permitted (1)\n',
'rsync: chown
"/net/terastation/mnt/array1/backup/fwbackups-snowflake-root/Backup-System
Backup-2007-04-03/root/.fwbackups/Sets" failed: Operation not permitted (1)\n',
'rsync: chown 

Comment 12 Stewart Adam 2007-04-03 20:51:53 UTC
If you run rsync (not from spawned from fwbackups-run) does it also fail?
For the SSH access, I'm planning to integrate GnomeVFS but that's for 1.44...

Comment 13 Bernard Johnson 2007-04-07 17:14:12 UTC
(In reply to comment #12)
> If you run rsync (not from spawned from fwbackups-run) does it also fail?
> For the SSH access, I'm planning to integrate GnomeVFS but that's for 1.44...

Sorry, I meant to followup on this earlier.  Yes, it does fail because of the
root_squash option on the nfs system.  Basically, it's trying to chown the files
to uid 0 which is not allowed.

Don't know if there is an easy way to catch this sort of thing though.

Comment 14 Stewart Adam 2007-04-08 13:58:12 UTC
I'm not sure either - But what I do know for sure is that if this happens,
fwbackups shouldn't think the backup is still going... What's the exit status on
rsync after it fails?

Comment 15 Bernard Johnson 2007-04-09 18:33:58 UTC
(In reply to comment #14)
> I'm not sure either - But what I do know for sure is that if this happens,
> fwbackups shouldn't think the backup is still going... What's the exit status on
> rsync after it fails?

Looks like I misinterpreted it.  Apparently it did not terminate, it was still
running, just not spewing errors anymore.  Maybe it hit a big file and I was
impatient.  I just ran a smaller backup and it gave a chown error for each root
owned file, but the backup did finish.

Comment 16 Stewart Adam 2007-04-19 02:21:00 UTC
Just to keep you updated, I haven't had much time on my hands lately and for the
next three weeks or so I'd guess it will be the same - But I'll work on this
when things clear up.

I've put Beta3 into development and the fc6 RPM I build with Mock as usual is at
www.diffingo.com if you'd like to test the new changes. As always, thanks!

Comment 17 Bernard Johnson 2007-04-27 15:22:24 UTC
I've been using the beta-2 rpm and everything is working very nicely.  I still
have some issues with my rsync backups, but haven't had a chance to determine
where the actual problem is (time constraints here as well).  I'll try to
upgrade to beta-3 here shortly.

Also, I'm going to move the RFE above to a separate ticket so it's easier to track.

Comment 18 Stewart Adam 2007-05-25 21:48:28 UTC
I've just submitted fwbackups-1_43_0-0_1_rc2_fc6 for building... I'll close this
ticket.


Note You need to log in before you can comment on or make changes to this bug.