[Libburn] New error

Bryan Forbes bryan at reigndropsfall.net
Mon Aug 23 12:45:50 PDT 2004


I moved around my routines like you said, yet I still get a crash.
Here's the console output and my gdb backtrace:

/
  AUDIO.CC;1
  AUDIO.H;1
  CD_INFO.CC;1
  CD_INFO.H;1
[New Thread 81926 (LWP 11478)]
ignored nwa: 0

ctladr|trno|indx|form|scms|  msf
------+----+----+----+----+--------
 4  1 | 00 | 00 | 01 | 00 |00:00:00
 4  1 | 01 | 00 | 10 | 00 |00:00:00
 4  1 | 01 | 01 | 10 | 00 |00:02:00
 4  1 | AA | 01 | 01 | 00 |00:02:22
pulling from next track

now, the backtrace (full):

#0  0x0e3ba914 in iso_source_generate (src=0x220, buffer=0x31d1aa70 "",
    size=2048) at libisofs/writer.c:373
        next = 0
        err = BURN_SOURCE_OK
        target = (struct iso_write_target *) 0x1030d150
#1  0x0e69ba70 in get_bytes (src=0x1030d198, count=2048, data=0x31d1aa70
"")
    at libburn/sector.c:76
        valid = 0
        shortage = 2048
        more = 2048
#2  0x0e69bd24 in convert_data (o=0x1030d1b8, src=0x1030d198, inmode=4,
    data=0x31d1aa70 "") at libburn/sector.c:128
        outlen = 2048
        inlen = 2048
        offset = -1
        outmode = 4
#3  0x0e69d1a8 in sector_data (o=0x1030d1b8, t=0x103460c0, psub=0)
    at libburn/sector.c:431
        d = (struct burn_drive *) 0xe6b6cbc
        subs = "\016k1[?]\000\000\0202\000\000\000\000\000\000\000\000
\0001ѩ[?]\000\000\000\000\016i T\000\000\000\000\000\000\000\001\016jE
[?]\000\000\000\000\000\000\000\0001ҫ[?]1ҫ[?]\016k[?]`1ѩ[?]1ѩ[?]0\000
[?][?]\210\000$h\000\000\000\000\0200Ѹ\0204`[?]\000\000\000\000\000\000
\b"
        data = (unsigned char *) 0x31d1aa70 ""
#4  0x0e6a2dfc in burn_write_track (o=0x1030d1b8, s=0x10305be8, tnum=0)
    at libburn/write.c:374
        t = (struct burn_track *) 0x103460c0
        d = (struct burn_drive *) 0xe6b6cbc
        i = 0
        tmp = 0
        sectors = 34
#5  0x0e6a2b00 in burn_write_session (o=0x1030d1b8, s=0x10305be8)
    at libburn/write.c:319
        d = (struct burn_drive *) 0xe6b6cbc
        prev = (struct burn_track *) 0x0
        next = (struct burn_track *) 0x0
        i = 0
#6  0x0e6a333c in burn_disc_write_sync (o=0x1030d1b8, disc=0x103244d8)
    at libburn/write.c:473
        sheet = (struct cue_sheet *) 0x10302f08
        d = (struct burn_drive *) 0xe6b6cbc
        buf = {data = '\0' <repeats 65535 times>, sectors = 1, bytes =
2048}
        lt = (struct burn_track *) 0x31d2aac0
        first = 1
        i = 0
        res = 0
#7  0x0e695e34 in write_disc_worker_func (w=0x1030d1b8) at
libburn/async.c:156
No locals.
#8  0x0e625e40 in pthread_start_thread () from /lib/libpthread.so.0
No symbol table info available.
#9  0x0e625eb8 in pthread_start_thread_event ()
from /lib/libpthread.so.0
No symbol table info available.
#10 0x0e06537c in clone () from /lib/libc.so.6
No symbol table info available.

Thread 5 (Thread 49156 (LWP 11476)):
#0  0x0e62872c in __pthread_sigsuspend () from /lib/libpthread.so.0
No symbol table info available.
#1  0x0e628464 in __pthread_wait_for_restart_signal ()
   from /lib/libpthread.so.0
No symbol table info available.
#2  0x0e625034 in pthread_cond_wait at GLIBC_2.0 ()
from /lib/libpthread.so.0
No symbol table info available.
#3  0x0e83c6c8 in _gnome_vfs_thread_pool_init ()
   from /usr/lib/libgnomevfs-2.so.0
No symbol table info available.
#4  0x0e83c72c in _gnome_vfs_thread_pool_init ()
   from /usr/lib/libgnomevfs-2.so.0
No symbol table info available.
#5  0x0e427484 in g_static_private_free ()
from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#6  0x0e625e40 in pthread_start_thread () from /lib/libpthread.so.0
No symbol table info available.
#7  0x0e625eb8 in pthread_start_thread_event ()
from /lib/libpthread.so.0
No symbol table info available.
#8  0x0e06537c in clone () from /lib/libc.so.6
No symbol table info available.

Thread 3 (Thread 16386 (LWP 11474)):
#0  0x0e05b548 in poll () from /lib/libc.so.6
No symbol table info available.
#1  0x0e40c358 in g_main_loop_get_context ()
from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#2  0x0e40b51c in g_main_context_dispatch ()
from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#3  0x0e40bdb8 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#4  0x0e763134 in link_thread_io_context ()
from /usr/lib/libORBit-2.so.0
No symbol table info available.
#5  0x0e427484 in g_static_private_free ()
from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#6  0x0e625e40 in pthread_start_thread () from /lib/libpthread.so.0
No symbol table info available.
#7  0x0e625eb8 in pthread_start_thread_event ()
from /lib/libpthread.so.0
No symbol table info available.
#8  0x0e06537c in clone () from /lib/libc.so.6
No symbol table info available.

Thread 2 (Thread 32769 (LWP 11473)):
#0  0x0e05b548 in poll () from /lib/libc.so.6
No symbol table info available.
#1  0x0e625bd8 in __pthread_manager () from /lib/libpthread.so.0
No symbol table info available.
#2  0x0e625d68 in __pthread_manager_event () from /lib/libpthread.so.0
No symbol table info available.
#3  0x0e06537c in clone () from /lib/libc.so.6
No symbol table info available.

Thread 1 (Thread 16384 (LWP 11472)):
#0  0x0e62c888 in nanosleep () from /lib/libpthread.so.0
No symbol table info available.
#1  0x0e62c874 in nanosleep () from /lib/libpthread.so.0
No symbol table info available.
#2  0x0e42a3e4 in g_usleep () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#3  0x0e8b35c4 in Glib::usleep () from /usr/lib/libglibmm-2.4.so.1
No symbol table info available.
#4  0x10037110 in Coaster::IO::burndisc (drive_info=0x101616b0,
    speed=2147474416, burn_type=COASTER_BURN_AUDIO,
slot_progress=@0x7fffde10,
    layout_array=@0x1030d1b8, lp=@0x7fffdc54) at cd-io.cc:203
        disc = (struct burn_disc *) 0x103244d8
        session = (struct burn_session *) 0x10305be8
        tr = (struct burn_track *) 0x103460c0
        volset = (struct iso_volumeset *) 0x10322e68
        src = (burn::burn_source *) 0x1030d198
        o = (struct burn_write_opts *) 0x1030d1b8
        p = {sessions = 239248356, session = 805352924, tracks =
1210328130,
  track = 268661008, indices = 2147474368, index = 239248356,
  start_sector = 0, sectors = 100000000, sector = 0}
        context = {pCppObject_ = 0xe8b35c4}
#5  0x100580d8 in Coaster::ViewNotebook::on_burn_clicked
(this=0x101ca018)
    at slot.h:166
        burndialog = {_M_ptr = 0xe42a3e4}
        result = 516
#6  0x10047d0c in sigc::adaptor_functor<sigc::bound_mem_functor0<void,
Coaster::ViewNotebook> >::operator() (this=0x0) at mem_fun.h:1781
No locals.
#7  0x10047cc0 in
sigc::internal::slot_call0<sigc::bound_mem_functor0<void,
Coaster::ViewNotebook>, void>::call_it (rep=0x204) at slot.h:89
No locals.
#8  0x0e8b10b8 in Glib::SignalProxyNormal::slot0_void_callback ()
   from /usr/lib/libglibmm-2.4.so.1
No symbol table info available.
#9  0x0e4f605c in g_cclosure_marshal_VOID__VOID ()
   from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#10 0x0e4e05a4 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#11 0x0e4f5848 in g_signal_emit_by_name ()
from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#12 0x0e4f49ec in g_signal_emit_valist ()
from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#13 0x0e4f4d38 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#14 0x0fb1885c in _gtk_action_emit_activate ()
   from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#15 0x0fb18940 in gtk_action_activate () from /usr/lib/libgtk-
x11-2.0.so.0
No symbol table info available.
#16 0x0e4f605c in g_cclosure_marshal_VOID__VOID ()
   from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#17 0x0e4e05a4 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#18 0x0e4f5ac4 in g_signal_emit_by_name ()
from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#19 0x0e4f49ec in g_signal_emit_valist ()
from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#20 0x0e4f4e98 in g_signal_emit_by_name ()
from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#21 0x0fc9a950 in gtk_tool_button_get_type () from /usr/lib/libgtk-
x11-2.0.so.0
No symbol table info available.
#22 0x0e4f605c in g_cclosure_marshal_VOID__VOID ()
   from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#23 0x0e4e05a4 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#24 0x0e4f5ac4 in g_signal_emit_by_name ()
from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#25 0x0e4f49ec in g_signal_emit_valist ()
from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#26 0x0e4f4d38 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#27 0x0fb25628 in gtk_button_clicked () from /usr/lib/libgtk-
x11-2.0.so.0
No symbol table info available.
#28 0x0fb26804 in _gtk_button_paint () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#29 0x0e4f605c in g_cclosure_marshal_VOID__VOID ()
   from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#30 0x0e4e0930 in g_cclosure_new_swap ()
from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#31 0x0e4e05a4 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#32 0x0e4f5374 in g_signal_emit_by_name ()
from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#33 0x0e4f49ec in g_signal_emit_valist ()
from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#34 0x0e4f4d38 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#35 0x0fb25568 in gtk_button_released () from /usr/lib/libgtk-
x11-2.0.so.0
No symbol table info available.
#36 0x0fb26618 in _gtk_button_paint () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#37 0x0fbe62f0 in _gtk_marshal_BOOLEAN__BOXED ()
   from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#38 0x0e4e0930 in g_cclosure_new_swap ()
from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#39 0x0e4e05a4 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#40 0x0e4f5470 in g_signal_emit_by_name ()
from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#41 0x0e4f47b0 in g_signal_emit_valist ()
from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#42 0x0e4f4d38 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#43 0x0fcebee8 in gtk_widget_send_expose () from /usr/lib/libgtk-
x11-2.0.so.0
No symbol table info available.
#44 0x0fbe4670 in gtk_propagate_event () from /usr/lib/libgtk-
x11-2.0.so.0
No symbol table info available.
#45 0x0fbe3118 in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#46 0x0f9b965c in _gdk_events_queue () from /usr/lib/libgdk-x11-2.0.so.0
No symbol table info available.
#47 0x0e409c98 in g_main_depth () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#48 0x0e40b1dc in g_main_context_dispatch ()
from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#49 0x0e40b5ac in g_main_context_dispatch ()
from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#50 0x0e40bdb8 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#51 0x0fbe281c in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#52 0x0ed05010 in Gtk::Main::run_impl () from /usr/lib/libgtkmm-2.4.so.1
No symbol table info available.
#53 0x0ed04d6c in Gtk::Main::run () from /usr/lib/libgtkmm-2.4.so.1
No symbol table info available.
#54 0x10049574 in main (argc=0, argv=0xe480840) at main.cc:297
        main_instance = <incomplete type>
        authors = {<std::_Vector_base<Glib::ustring,
std::allocator<Glib::ustring> >> =
{<std::_Vector_alloc_base<Glib::ustring, std::allocator<Glib::ustring>,
true>> = {_M_start = 0xe8b35c4, _M_finish = 0x50,
      _M_end_of_storage = 0x1}, <No data fields>}, <No data fields>}
        documenters = {<std::_Vector_base<Glib::ustring,
std::allocator<Glib::ustring> >> =
{<std::_Vector_alloc_base<Glib::ustring, std::allocator<Glib::ustring>,
true>> = {_M_start = 0x10037110, _M_finish = 0x100597ac,
      _M_end_of_storage = 0x10305be8}, <No data fields>}, <No data
fields>}
        instmgr = {ptr_ = 0x7fffddd0}
        capabilities = 0xe478eb4
0x0e3ba914      373             struct iso_write_target *target = src-
>data;

Hope this helps!

On Mon, 2004-08-23 at 10:23 -0500, Bryan Forbes wrote:
> I was just told by teuf and mjg59, in #gnome-hackers, that there is a
> patch in kernel 2.6.8 that only allows burning with root.  Here's the
> log:
> 
> <mxpxpod> something with the new 2.6.8 kernel makes libburn freak out
> <mxpxpod> which is not good for coaster
> <teuf> mxpxpod, yeah, that's a known issue with 2.6.8
> <mxpxpod> teuf: really?
> <teuf> mxpxpod, cd burning only works as root with it
> <mxpxpod> teuf: well, when are they going to fix that?
> <teuf> mxpxpod, in the next release ?
> <teuf> I think they backed out the patch
> <mxpxpod> teuf: good, thanks
> <mjg59> teuf: No, they're not backing it out
> <mxpxpod> mjg59: why not??
> <mjg59> mxpxpod: Because the current situation is that anyone with read
> access to a scsi generic device can destroy the hardware
> <mxpxpod> mjg59: :(
> <mjg59> 2.6.8 fixes that, so you need CAP_RAWIO instead
> <mxpxpod> mjg59: is that a flag?
> <teuf> mjg59, ah ok, I didn't follow the issue too closely
> <mjg59> mxpxpod: It's a capability
> <mxpxpod> mjg59: how's it work?
> <mjg59> Root has it by default
> <mjg59> So the easiest thing is to make the app suid root and then
> immediately drop all privileges other than RAWIO
> <mxpxpod> mjg59: how do I do that?
> <jamesh> to make cd burning as an unpriveleged user really safe, the
> kernel would probably need to include enough of the CD writing code to
> allow you to do "cat cdimage.iso > /dev/cdrom"
> <mjg59> mxpxpod: Which bit?
> <mxpxpod> mjg59: the part about dropping all other privs
> <mjg59> mxpxpod: capget, and then mask off all the bits you don't need
> <mjg59> Then capset it back
> <mxpxpod> mjg59: is capget a kernel function?
> <mjg59> mxpxpod: Yeah, there's an easier interface through libc. See
> capabilities(7)
> <teuf> mxpxpod, see
> http://www.ussg.iu.edu/hypermail/linux/kernel/0408.2/0091.html for a
> thread about your problem
> 
> I'm not sure how to do that because Gtk+ doesn't allow me to run a
> program setuid root.  I'm talking with mjg59 now about how to get this
> to work.
> 
> On Mon, 2004-08-23 at 02:28 -0500, Derek Foreman wrote:
> > On Sun, 22 Aug 2004, Bryan Forbes wrote:
> > 
> > > I just upgraded my kernel to 2.6.8 and I'm getting a new error with
> > > libburn.  If I run the devices test, I get this on the command line:
> > >
> > > Initializing library...Success
> > > Scanning for devices...devices: libburn/sg.c:247: sg_issue_command:
> > > Assertion `err != -1' failed.
> > > Killed
> > 
> > Nice.
> > 
> > You sure you have the right permissions on your cd burning device?  Can 
> > you duplicate this while running as root?
> > 
> > My guess is that you've only got read access to the device node or 
> > something along those lines.  And the only fix I'll be able to give you 
> > will just make libburn refuse to use the device at all when it's 
> > configured like that.
> > 
> > I think 2.6.8 added some command filtering stuff to prevent malicious 
> > users from being able to destroy drives.
> > 
> > It looks like the command to unlock the drive door isn't allowed.  Amusing 
> > because it appears to have been ok to lock it in the first place.
> > 
> > oh, and I think "thread apply all bt full" is what I'm looking for - but 
> > I don't need any more info here.  This is most likely a device permission 
> > problem or a kernel bug.
> _______________________________________________
> libburn mailing list
> libburn at freedesktop.org
> http://pdx.freedesktop.org/cgi-bin/mailman/listinfo/libburn
-- 
======================================================================
Bryan Forbes
bryan at reigndropsfall.net
http://www.reigndropsfall.net

"It does not take a majority to prevail, but rather an irate, tireless
minority keen to set brush fires in people's minds."
        - Samuel Adams, an architect of the Constitution

Key fingerprint = 3D7D B728 713A BB7B B8B1  5B61 3888 17E0 70CA 0F3D
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : http://freedesktop.org/pipermail/libburn/attachments/20040823/a4114895/attachment.pgp


More information about the libburn mailing list