smbclient_tar flapping

Jeremy Allison jra at samba.org
Wed Jun 22 00:14:37 UTC 2016


On Tue, Jun 21, 2016 at 06:09:58PM +0200, Aurélien Aptel wrote:
> On Mon, 20 Jun 2016 16:47:31 -0700 Jeremy Allison <jra at samba.org> wrote:
> > Needs to be repeatable before I'll believe it I'm afraid.
> > More likely to be corruption in the testing EA store - remember
> > the 'D' bit is stored there in the dos attributes EA.
> 
> I also think it might me a tdb problem as selftest uses "store dos attributes = yes"
> and the tdb xattr VFS. I can also see this in logs when smbd looks for DOS attrs:
> 
> [10 2016/06/17 14:32:21.501261 ../source3/lib/xattr_tdb.c:183 xattr_tdb_getattr]
>    xattr_tdb_getattr called for file 801:10051158:0, name system.fake_uid
> [10 2016/06/17 14:32:21.501276 ../source3/lib/xattr_tdb.c:189 xattr_tdb_getattr]
>    xattr_tdb_fetch_attrs failed: NT_STATUS_INTERNAL_DB_CORRUPTION

Unfortunately that doesn't always mean NT_STATUS_INTERNAL_DB_CORRUPTION - it
can just mean not found. From xattr_tdb_load_attrs():

static NTSTATUS xattr_tdb_load_attrs(TALLOC_CTX *mem_ctx,
                                     struct db_context *db_ctx,
                                     const struct file_id *id,
                                     struct tdb_xattrs **presult)
{
        uint8_t id_buf[16];
        NTSTATUS status;
        TDB_DATA data;

        /* For backwards compatibility only store the dev/inode. */
        push_file_id_16((char *)id_buf, id);

        status = dbwrap_fetch(db_ctx, mem_ctx,
                              make_tdb_data(id_buf, sizeof(id_buf)),
                              &data);
        if (!NT_STATUS_IS_OK(status)) {
                return NT_STATUS_INTERNAL_DB_CORRUPTION;
        }
	..



More information about the samba-technical mailing list