[Samba] Upgrade to 3.6.6 fails - Couldn't migrate printers tdb file

David Disseldorp ddiss at suse.de
Wed Jul 4 09:35:46 MDT 2012


On Wed, 4 Jul 2012 10:58:12 -0400
Chris Smith <smb_77 at chrissmith.org> wrote:

> From the smbd.log level 10 log there is this:
> =========================================
> [2012/07/04 10:41:28.146531,  5, effective(0, 0), real(0, 0)]
> printing/nt_printing_migrate_internal.c:54(rename_file_with_suffix)
>   moved '/var/lib/samba/ntdrivers.tdb' to '/var/lib/samba/ntdrivers.tdb.bak'
> [2012/07/04 10:41:28.146688,  3, effective(0, 0), real(0, 0)]
> lib/charcnv.c:537(convert_string_talloc)
>   convert_string_talloc: Conversion error: Illegal multibyte sequence(â0)
> [2012/07/04 10:41:28.146750,  0, effective(0, 0), real(0, 0)]
> lib/charcnv.c:543(convert_string_talloc)
>   Conversion error: Illegal multibyte sequence(â0)
> [2012/07/04 10:41:28.146823,  1, effective(0, 0), real(0, 0)]
> ../librpc/ndr/ndr.c:414(ndr_pull_error)
>   ndr_pull_error(5): Bad character conversion with flags 0x42
> [2012/07/04 10:41:28.146882,  2, effective(0, 0), real(0, 0)]
> printing/nt_printing_migrate.c:207(printing_tdb_migrate_printer)
>   printer pull failed: Character Conversion Error
> [2012/07/04 10:41:28.146947,  0, effective(0, 0), real(0, 0)]
> printing/nt_printing_migrate_internal.c:237(nt_printing_tdb_migrate)
>   Couldn't migrate printers tdb file: NT_STATUS_NO_MEMORY
> =========================================
> Seems it doesn't like the ntdrivers.tdb file. It verifies fine with
> tdbbackup and I can backup and restore with tdbbackup or
> tdbdump/tdbrestore yet the same issue remains.

ntdrivers.tdb is ok, it appears to be ntprinters.tdb which is processed
afterwards. My guess is it's a reoccurrence of:
https://bugzilla.samba.org/show_bug.cgi?id=8606

Windows (likely the fault of the printer driver) sometimes adds
garbage after the null terminator for printer device mode strings.
Unmarshalling of the device mode chokes in some cases when processing
these strings.
The changes for 8606 fixed spoolss_DeviceMode (spoolss.idl)
unmarshalling. However, it looks like we also need to do the same for
ntprinting_devicemode (ntprinting.idl) to handle cases where this
garbage was stored in the tdb, prior to the 8606 fix.

Again, please raise a bug so we can fix this. Attach your printing tdb
files in addition to the logs please.

Cheers, David


More information about the samba mailing list