Amanda-Users

Re: chg-scsi coredumps when enabling barcode reader.

2002-11-18 16:36:17
Subject: Re: chg-scsi coredumps when enabling barcode reader.
From: Kirill Alder-Ponazdyr <lists AT codeangels DOT com>
To: amanda-users AT amanda DOT org
Date: Mon, 18 Nov 2002 22:00:44 +0100
A simple and dirtly walkaround we use now is to set root suid bit on chg-scsi, 
this solves all problems for now.

Regards

Kirill

On Mon, 18 Nov 2002 17:53:11 +0100
Kirill Alder-Ponazdyr <lists AT codeangels DOT com> wrote:

> On Mon, 18 Nov 2002 11:42:11 -0500
> Galen Johnson <gjohnson AT trantor DOT org> wrote:
> 
> > Perhaps the barcode device has different ownership/permissions/group 
> > than the rest of the devices?  I don't have a barcode reader device so 
> > I'm just throwing out possiblities...
> > 
> > =G=
> 
> Not really, the barcodes are being read trough the same device which is used 
> to controll the library, and that one is readable / writable by sys group.
> 
> Also, the chg-scsi is actually able to read the barcodes (visible in debug) 
> but trashes somewhere past that point. I did 2 x trusses, one for root and 
> one for amanda, this is what I see when looking at the area near crash:
> 
> Amanda User:
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ----cut--------
> write(10, " 1 0 3 7 6 3 5 5 9 7 : #".., 50)     = 50
> time()                                          = 1037635597
> write(10, " 1 0 3 7 6 3 5 5 9 7 : #".., 37)     = 37
> time()                                          = 1037635597
> write(10, " 1 0 3 7 6 3 5 5 9 7 : d".., 51)     = 51
> time()                                          = 1037635597
> write(10, " 1 0 3 7 6 3 5 5 9 7 : #".., 48)     = 48
> open64("/etc/amanda/daily.scsi/tape0-slot", O_RDONLY) = 4
> fstat64(4, 0xFFBFF728)                          = 0
> fstat64(4, 0xFFBFF5D0)                          = 0
> ioctl(4, TCGETA, 0xFFBFF6B4)                    Err#25 ENOTTY
> read(4, " 0\n", 8192)                           = 2
> llseek(4, 0xFFFFFFFFFFFFFFFF, SEEK_CUR)         = 1
> close(4)                                        = 0
> time()                                          = 1037635597
> write(10, " 1 0 3 7 6 3 5 5 9 7 : #".., 31)     = 31
> time()                                          = 1037635597
> write(10, " 1 0 3 7 6 3 5 5 9 7 : u".., 57)     = 57
> time()                                          = 1037635597
> write(10, " 1 0 3 7 6 3 5 5 9 7 : u".., 64)     = 64
> time()                                          = 1037635597
> time()                                          = 1037635597
> time()                                          = 1037635597
> time()                                          = 1037635597
> time()                                          = 1037635597
> time()                                          = 1037635597
>     Incurred fault #6, FLTBOUNDS  %pc = 0x000182E4
>       siginfo: SIGSEGV SEGV_MAPERR addr=0x00000020
>     Received signal #11, SIGSEGV [default]
>       siginfo: SIGSEGV SEGV_MAPERR addr=0x00000020
> ----end--------
> 
> Root User:
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ----cut--------
> write(10, " 1 0 3 7 6 3 5 6 2 2 : #".., 50)     = 50
> time()                                          = 1037635622
> write(10, " 1 0 3 7 6 3 5 6 2 2 : #".., 37)     = 37
> time()                                          = 1037635622
> write(10, " 1 0 3 7 6 3 5 6 2 2 : d".., 51)     = 51
> time()                                          = 1037635622
> write(10, " 1 0 3 7 6 3 5 6 2 2 : #".., 48)     = 48
> open64("/etc/amanda/daily.scsi/tape0-slot", O_RDONLY) = 4
> fstat64(4, 0xFFBFF718)                          = 0
> fstat64(4, 0xFFBFF5C0)                          = 0
> ioctl(4, TCGETA, 0xFFBFF6A4)                    Err#25 ENOTTY
> read(4, " 0\n", 8192)                           = 2
> llseek(4, 0xFFFFFFFFFFFFFFFF, SEEK_CUR)         = 1
> close(4)                                        = 0
> time()                                          = 1037635622
> write(10, " 1 0 3 7 6 3 5 6 2 2 : #".., 31)     = 31
> time()                                          = 1037635622
> write(10, " 1 0 3 7 6 3 5 6 2 2 : u".., 57)     = 57
> time()                                          = 1037635622
> write(10, " 1 0 3 7 6 3 5 6 2 2 : u".., 64)     = 64
> time()                                          = 1037635622
> time()                                          = 1037635622
> time()                                          = 1037635622
> time()                                          = 1037635622
> time()                                          = 1037635622
> time()                                          = 1037635622
> time()                                          = 1037635622
> time()                                          = 1037635622
> write(10, " 1 0 3 7 6 3 5 6 2 2 : #".., 42)     = 42
> time()                                          = 1037635622
> write(10, " 1 0 3 7 6 3 5 6 2 2 : #".., 34)     = 34
> time()                                          = 1037635622
> write(10, " S C S I _ E x e c u t e".., 38)     = 38
> time()                                          = 1037635622
> write(10, "   0 0", 3)                          = 3
> time()                                          = 1037635622
> write(10, "   0 0", 3)                          = 3
> time()                                          = 1037635622
> write(10, "   0 0", 3)                          = 3
> time()                                          = 1037635622
> write(10, "   0 0", 3)                          = 3
> time()                                          = 1037635622
> write(10, "   0 0", 3)                          = 3
> time()                                          = 1037635622
> write(10, "   0 0", 3)                          = 3
> time()                                          = 1037635622
> write(10, "\n", 1)                              = 1
> time()                                          = 1037635622
> write(10, " 1 0 3 7 6 3 5 6 2 2 : #".., 33)     = 33
> open64("/dev/rmt/0cbn", O_RDWR|O_NDELAY)        = 4
> ioctl(4, 0x04C9, 0xFFBFF9F0)                    = 0
> close(4)                                        = 0
> time()                                          = 1037635622
> time()                                          = 1037635622
> write(10, " 1 0 3 7 6 3 5 6 2 2 : #".., 46)     = 46
> time()                                          = 1037635622
> alarm(0)                                        = 0
> sigaction(SIGALRM, 0xFFBFF9C0, 0xFFBFFA70)      = 0
> sigprocmask(SIG_BLOCK, 0xFFBFFA60, 0xFFBFFA50)  = 0
> alarm(1)                                        = 0
>     Received signal #14, SIGALRM, in sigsuspend() [caught]
> sigsuspend(0xFFBFFA40)                          Err#4 EINTR
> setcontext(0xFFBFF728)
> alarm(0)                                        = 0
> sigprocmask(SIG_UNBLOCK, 0xFFBFFA60, 0x00000000) = 0
> sigaction(SIGALRM, 0xFFBFF9C0, 0x00000000)      = 0
> ----cut--------
>