[Libburn] Re: Handling abort situations with libburn
scdbackup at gmx.net
scdbackup at gmx.net
Sun Jan 29 15:02:07 PST 2006
Hi,
have another report from the cdrskin elk test area.
I am pressing Ctrl+C at any imaginable occasion now.
In most cases i get a nicely released drive after
the program has ended.
Now i found another problem with abort situations
(no fear, they all get listed).
If i interrupt burn_drive_grab() while it is
gnawing on a freshly loaded media then the drive
is in status BURN_DRIVE_GRABBING and refuses
to be released ("Assertion `!d->busy' failed")
as well as the library refuses to be finished
without drive release ("Assertion `d->released' failed").
The drive status does not change from BURN_DRIVE_GRABBING
while the abort handler is waiting for 74 minutes.
A classical Catch 22.
This has nothing to do with the real drive's state.
The real drive is left locked but can be revived by a
simple eject /dev/sr1 or by a successful cycle of
init-grab-release-finish of another libburn process.
The drive status of the aborting libburn process
does not change by this revival of the real drive.
It seems just to be an inner problem of libburn
being undecided what to do.
My current remedy is to set signal handling to
full ignore during the grab phase. This introduces,
of course, the problems of both: ignorance towards
the external world and the inability to ignore
SIGKILL. The timespan for grab is about 5 seconds
at most so that it is not easy to ps | grep and
kill -9 fast enough. :))
I would prefer to have a call which cleans up a
drive in status BURN_DRIVE_GRABBING gracefully.
But don't feel pushed. I only push for the
re-unification of our two libburns :)) and even
this i do with a ;)
Have a nice day :)
Thomas
More information about the libburn
mailing list