[Samba] Samba 3.2.6 upgrade -> smbd panic in printing.

Jeremy Allison jra at samba.org
Tue Dec 16 17:42:17 GMT 2008


On Tue, Dec 16, 2008 at 08:57:14AM +0100, Pedro Rodrigues wrote:
> Hello,
> 
> upgraded to Samba 3.2.6, and immediately printing went into coma. Observed
> that printers lose their configurations (driver models, locations, etc).
> And if I reset the printer drivers on each share, eventually they will be
> lost again.
> 
> Looking at the logs we are getting panics like this:
> 
> ---
> [2008/12/16 05:12:51,  0] lib/util_tdb.c:tdb_log(682)
>   tdb(/var/lib/samba/printing/CanonC1.tdb): tdb_reopen: file dev/inode has
> changed!
> [2008/12/16 05:12:51,  0] lib/util.c:reinit_after_fork(1050)
>   tdb_reopen_all failed.
> [2008/12/16 05:12:51,  0] printing/print_cups.c:cups_pcap_load_async(392)
>   cups_pcap_load_async: reinit_after_fork() failed
> [2008/12/16 05:12:51,  0] lib/util.c:smb_panic(1663)
>   PANIC (pid 2590): cups_pcap_load_async: reinit_after_fork() failed
> [2008/12/16 05:12:51,  0] lib/util.c:log_stack_trace(1767)
>   BACKTRACE: 11 stack frames:
>    #0 smbd(log_stack_trace+0x2d) [0x479c2f]
>    #1 smbd(smb_panic+0x84) [0x479d71]
>    #2 smbd(cups_cache_reload+0x299) [0x440d2c]
>    #3 smbd(pcap_cache_reload+0x107) [0x43d189]
>    #4 smbd(reload_printers+0x31) [0x6c477a]
>    #5 smbd(check_reload+0x130) [0x2c6510]
>    #6 smbd [0x2c655f]
>    #7 smbd(smbd_process+0xc92) [0x2c8a76]
>    #8 smbd(main+0x212c) [0x6c70ec]
>    #9 /lib/libc.so.6(__libc_start_main+0xdc) [0xdd9dec]
>    #10 smbd [0x24c061]
> [2008/12/16 05:12:51,  0] lib/fault.c:dump_core(201)
>   dumping core in /var/log/samba/cores/smbd
> ---
> 
> These didn't exist before.  I've already checked the tdb files for
> corruption and cleaned some of them (the ones I can), with no luck.
> 
> We are running Centos 5.2, by the way. Any ideas?

This message is the key :

>   tdb(/var/lib/samba/printing/CanonC1.tdb): tdb_reopen: file dev/inode
>   has
> changed!
> [2008/12/16 05:12:51,  0] lib/util.c:reinit_after_fork(1050)
>   tdb_reopen_all failed.

which causes a deliberate panic in the code here :

        /* Child. */
        if (!reinit_after_fork(smbd_messaging_context(), true)) {
                DEBUG(0,("cups_pcap_load_async: reinit_after_fork() failed\n"));
                smb_panic("cups_pcap_load_async: reinit_after_fork() failed");
        }

How many printers do you have ? Do you have some sort of a batch
job running that may delete printing tdb's ?

Jeremy.


More information about the samba mailing list