smb_panic and pdb

Jeremy Allison jra at samba.org
Mon Oct 29 17:21:58 UTC 2018


On Mon, Oct 29, 2018 at 07:38:55AM +0100, Andreas Schneider wrote:
> On Friday, 26 October 2018 21:29:23 CET Jeremy Allison wrote:
> > On Wed, Oct 24, 2018 at 05:13:04PM +0200, Andreas Schneider via samba-
> technical wrote:
> > > Hello,
> > > 
> > > we have a retrace report which starts to glow. winbind is create a core
> > > file during a name lookup because it fails to load the pdb methods and
> > > calls smb_panic().
> > > 
> > > This is probably a configuration issue.
> > > 
> > > However how should we deal with that in a more graceful way and write what
> > > is wrong the the log file instead of core dumping?
> > > 
> > > This has been reported over 6000 times in the meantime. The backtrace is
> > > here:
> > > 
> > > https://retrace.fedoraproject.org/faf/reports/1577174/
> > 
> > The backtrace shows it printing a name of the backend
> > method it's trying and failing to find:
> > 
> >  224                 char *msg = NULL;
> >  225                 if (asprintf(&msg, "pdb_get_methods: "
> >  226                              "failed to get pdb methods for backend
> > %s\n", 227                              lp_passdb_backend()) > 0) {
> >  228                         smb_panic(msg);
> > 
> > Do you have a log file showing what the
> > name is ?
> > 
> > It'll be what the user configured in:
> > 
> > passdb backend = XXXXXX
> > 
> > so I'm guessing a miss-spelling here will
> > cause the smb_panic.
> > 
> > We should probably print the error message
> > here and exit more gracefully.
> 
> How do we do that, call exit_server_cleanly() instead or should we correctly 
> return error codes in pdb functions?

Looking at return error codes from pdb functions means changing
more code, but is probably a better long term solution. For
the immediate fedora bug it's probably better to exit. Check
what happens in winbindd to exit_server_cleanly(), I think it
just calls exit(0) via the shim.



More information about the samba-technical mailing list