Rowland penny
2019-Jul-24 16:31 UTC
[Samba] Error after upgrade NT_STATUS_INTERNAL_DB_CORRUPTION
On 24/07/2019 17:05, Rowland penny via samba wrote:> On 24/07/2019 16:01, Carlos via samba wrote: >> Hi >> >> samba-tool dbcheck >> ERROR(<class 'KeyError'>): uncaught exception - 'No such element' >> ? File >> "/opt/samba/lib/python3.6/site-packages/samba/netcmd/__init__.py", >> line 185, in _run >> ??? return self.run(*args, **kwargs) >> ? File >> "/opt/samba/lib/python3.6/site-packages/samba/netcmd/dbcheck.py", >> line 141, in run >> ??? check_expired_tombstones=selftest_check_expired_tombstones) >> ? File "/opt/samba/lib/python3.6/site-packages/samba/dbchecker.py", >> line 221, in __init__ >> ??? self.tombstoneLifetime = int(res[0]["tombstoneLifetime"][0]) > > I think this is a python 3 problem, the code around line 221 in > dbchecker is this: > > ??????? res = samdb.search(base=ntds_service_dn, > ?????????????????????????? scope=ldb.SCOPE_BASE, > ?????????????????????????? expression="(objectClass=nTDSService)", > ?????????????????????????? attrs=["tombstoneLifetime"]) > ??????? if "tombstoneLifetime" in res[0]: > ??????????? self.tombstoneLifetime = int(res[0]["tombstoneLifetime"][0]) > ??????? else: > ??????????? self.tombstoneLifetime = 180 > > It searches in AD to find the tombstone lifetime and it looks like the > search works, because the line that fails: > > self.tombstoneLifetime = int(res[0]["tombstoneLifetime"][0]) > > is only run if 'tombstoneLifetime' is in the search result, so it > seems to be found, but then not found ???? > > Let me think about this to see if I can come up with a fix. > > Rowland > > >OK, when I actually checked a DC running 4.10.6, the code actually looks like this: ??????? res = samdb.search(base=ntds_service_dn, ?????????????????????????? scope=ldb.SCOPE_BASE, ?????????????????????????? expression="(objectClass=nTDSService)", ?????????????????????????? attrs=["tombstoneLifetime"]) ??????? self.tombstoneLifetime = int(res[0]["tombstoneLifetime"][0]) but in 'master', it now looks like this: ??????? res = samdb.search(base=ntds_service_dn, ?????????????????????????? scope=ldb.SCOPE_BASE, ?????????????????????????? expression="(objectClass=nTDSService)", ?????????????????????????? attrs=["tombstoneLifetime"]) ??????? if "tombstoneLifetime" in res[0]: ??????????? self.tombstoneLifetime = int(res[0]["tombstoneLifetime"][0]) ??????? else: ??????????? self.tombstoneLifetime = 180 So, try opening 'dbchecker.py' in your favourite editor and make it look like the latter and try again. /usr/lib/python3/dist-packages/samba/dbchecker.py Starts at line 217 Rowland
Hi! After change file /opt/samba/lib/python3.6/site-packages/samba/dbchecker.py , dbcheck was ok Output log: checking 2407 objects NOTE: old (due to rename or delete) DN string component for lastKnownParent in object CN=RID Set\0ADEL:4faaeabf-54f9-4997-a2cf-a27d034ba524,CN=Deleted Objects,DC=interno,DC=xxxxxxxx,DC=com,DC=br - CN=DC-SAMBA-09,OU=Domain Controllers,DC=interno,DC=xxxxxxxx,DC=com,DC=br Not fixing old string component NOTE: old (due to rename or delete) DN string component for lastKnownParent in object CN=RID Set\0ADEL:cb3c6ef2-307c-4bdc-8a35-563f02e4b150,CN=Deleted Objects,DC=interno,DC=xxxxxxxx,DC=com,DC=br - CN=DC-SAMBA-09,OU=Domain Controllers,DC=interno,DC=xxxxxxxx,DC=com,DC=br Not fixing old string component NOTE: old (due to rename or delete) DN string component for lastKnownParent in object CN=RID Set\0ADEL:65cb30fc-9f75-44b1-8544-6a48a717c92b,CN=Deleted Objects,DC=interno,DC=xxxxxxxx,DC=com,DC=br - CN=DC-SAMBA-09,OU=Domain Controllers,DC=interno,DC=xxxxxxxx,DC=com,DC=br Not fixing old string component SKIPING: object CN=Machine\0ADEL:1ac0b25b-c761-4dbb-a575-976f6b2452cc,CN=Deleted Objects,DC=interno,DC=xxxxxxxx,DC=com,DC=br is an expired tombstone isDeleted: attid=0x00020030 version=1 invocation=e8c81fc7-2fdf-404a-804c-24fbade3ebde usn=2693314 (local=6398) at Fri Jan 25 12:02:34 2019 SKIPING: object CN=User\0ADEL:514f31a0-dd3d-4c58-8d78-b0c907714b98,CN=Deleted Objects,DC=interno,DC=xxxxxxxx,DC=com,DC=br is an expired tombstone isDeleted: attid=0x00020030 version=1 invocation=e8c81fc7-2fdf-404a-804c-24fbade3ebde usn=2693315 (local=6399) at Fri Jan 25 12:02:34 2019 NOTE: old (due to rename or delete) DN string component for lastKnownParent in object CN=RID Set\0ADEL:f7c426c5-c725-4a54-b73a-b6b6648b083b,CN=Deleted Objects,DC=interno,DC=xxxxxxxx,DC=com,DC=br - CN=DC-SAMBA-09,OU=Domain Controllers,DC=interno,DC=xxxxxxxx,DC=com,DC=br Not fixing old string component NOTE: old (due to rename or delete) DN string component for lastKnownParent in object CN=RID Set\0ADEL:96b66221-ce27-41e4-a208-c9190a265fb6,CN=Deleted Objects,DC=interno,DC=xxxxxxxx,DC=com,DC=br - CN=DC-SAMBA-09,OU=Domain Controllers,DC=interno,DC=xxxxxxxx,DC=com,DC=br Not fixing old string component NOTICE: found 2 expired tombstones, 'samba' will remove them daily, 'samba-tool domain tombstones expunge' would do that immediately. Checked 2407 objects (0 errors) And executed samba-tool dbcheck --cross-ncs --fix --yes No erro. but same erro in test.... smbclient //localhost/netlogon -UAdministrator -c 'ls' Enter SERVERAD\Administrator's password: session setup failed: NT_STATUS_INTERNAL_DB_CORRUPTION Regards; On 24/07/2019 13:31, Rowland penny via samba wrote:> On 24/07/2019 17:05, Rowland penny via samba wrote: >> On 24/07/2019 16:01, Carlos via samba wrote: >>> Hi >>> >>> samba-tool dbcheck >>> ERROR(<class 'KeyError'>): uncaught exception - 'No such element' >>> ? File >>> "/opt/samba/lib/python3.6/site-packages/samba/netcmd/__init__.py", >>> line 185, in _run >>> ??? return self.run(*args, **kwargs) >>> ? File >>> "/opt/samba/lib/python3.6/site-packages/samba/netcmd/dbcheck.py", >>> line 141, in run >>> check_expired_tombstones=selftest_check_expired_tombstones) >>> ? File "/opt/samba/lib/python3.6/site-packages/samba/dbchecker.py", >>> line 221, in __init__ >>> ??? self.tombstoneLifetime = int(res[0]["tombstoneLifetime"][0]) >> >> I think this is a python 3 problem, the code around line 221 in >> dbchecker is this: >> >> ??????? res = samdb.search(base=ntds_service_dn, >> ?????????????????????????? scope=ldb.SCOPE_BASE, >> expression="(objectClass=nTDSService)", >> ?????????????????????????? attrs=["tombstoneLifetime"]) >> ??????? if "tombstoneLifetime" in res[0]: >> ??????????? self.tombstoneLifetime = int(res[0]["tombstoneLifetime"][0]) >> ??????? else: >> ??????????? self.tombstoneLifetime = 180 >> >> It searches in AD to find the tombstone lifetime and it looks like >> the search works, because the line that fails: >> >> self.tombstoneLifetime = int(res[0]["tombstoneLifetime"][0]) >> >> is only run if 'tombstoneLifetime' is in the search result, so it >> seems to be found, but then not found ???? >> >> Let me think about this to see if I can come up with a fix. >> >> Rowland >> >> >> > OK, when I actually checked a DC running 4.10.6, the code actually > looks like this: > > ??????? res = samdb.search(base=ntds_service_dn, > ?????????????????????????? scope=ldb.SCOPE_BASE, > ?????????????????????????? expression="(objectClass=nTDSService)", > ?????????????????????????? attrs=["tombstoneLifetime"]) > ??????? self.tombstoneLifetime = int(res[0]["tombstoneLifetime"][0]) > > but in 'master', it now looks like this: > > ??????? res = samdb.search(base=ntds_service_dn, > ?????????????????????????? scope=ldb.SCOPE_BASE, > ?????????????????????????? expression="(objectClass=nTDSService)", > ?????????????????????????? attrs=["tombstoneLifetime"]) > ??????? if "tombstoneLifetime" in res[0]: > ??????????? self.tombstoneLifetime = int(res[0]["tombstoneLifetime"][0]) > ??????? else: > ??????????? self.tombstoneLifetime = 180 > > So, try opening 'dbchecker.py' in your favourite editor and make it > look like the latter and try again. > > /usr/lib/python3/dist-packages/samba/dbchecker.py > > Starts at line 217 > > Rowland > > > >
Rowland penny
2019-Jul-24 17:50 UTC
[Samba] Error after upgrade NT_STATUS_INTERNAL_DB_CORRUPTION
On 24/07/2019 18:07, Carlos via samba wrote:> Hi! > > After change file > /opt/samba/lib/python3.6/site-packages/samba/dbchecker.py , dbcheck > was ok > > Output log: > > checking 2407 objects > NOTE: old (due to rename or delete) DN string component for > lastKnownParent in object CN=RID > Set\0ADEL:4faaeabf-54f9-4997-a2cf-a27d034ba524,CN=Deleted > Objects,DC=interno,DC=xxxxxxxx,DC=com,DC=br - CN=DC-SAMBA-09,OU=Domain > Controllers,DC=interno,DC=xxxxxxxx,DC=com,DC=br > Not fixing old string component > NOTE: old (due to rename or delete) DN string component for > lastKnownParent in object CN=RID > Set\0ADEL:cb3c6ef2-307c-4bdc-8a35-563f02e4b150,CN=Deleted > Objects,DC=interno,DC=xxxxxxxx,DC=com,DC=br - CN=DC-SAMBA-09,OU=Domain > Controllers,DC=interno,DC=xxxxxxxx,DC=com,DC=br > Not fixing old string component > NOTE: old (due to rename or delete) DN string component for > lastKnownParent in object CN=RID > Set\0ADEL:65cb30fc-9f75-44b1-8544-6a48a717c92b,CN=Deleted > Objects,DC=interno,DC=xxxxxxxx,DC=com,DC=br - CN=DC-SAMBA-09,OU=Domain > Controllers,DC=interno,DC=xxxxxxxx,DC=com,DC=br > Not fixing old string component > SKIPING: object > CN=Machine\0ADEL:1ac0b25b-c761-4dbb-a575-976f6b2452cc,CN=Deleted > Objects,DC=interno,DC=xxxxxxxx,DC=com,DC=br is an expired tombstone > isDeleted: attid=0x00020030 version=1 > invocation=e8c81fc7-2fdf-404a-804c-24fbade3ebde usn=2693314 > (local=6398) at Fri Jan 25 12:02:34 2019 > SKIPING: object > CN=User\0ADEL:514f31a0-dd3d-4c58-8d78-b0c907714b98,CN=Deleted > Objects,DC=interno,DC=xxxxxxxx,DC=com,DC=br is an expired tombstone > isDeleted: attid=0x00020030 version=1 > invocation=e8c81fc7-2fdf-404a-804c-24fbade3ebde usn=2693315 > (local=6399) at Fri Jan 25 12:02:34 2019 > NOTE: old (due to rename or delete) DN string component for > lastKnownParent in object CN=RID > Set\0ADEL:f7c426c5-c725-4a54-b73a-b6b6648b083b,CN=Deleted > Objects,DC=interno,DC=xxxxxxxx,DC=com,DC=br - CN=DC-SAMBA-09,OU=Domain > Controllers,DC=interno,DC=xxxxxxxx,DC=com,DC=br > Not fixing old string component > NOTE: old (due to rename or delete) DN string component for > lastKnownParent in object CN=RID > Set\0ADEL:96b66221-ce27-41e4-a208-c9190a265fb6,CN=Deleted > Objects,DC=interno,DC=xxxxxxxx,DC=com,DC=br - CN=DC-SAMBA-09,OU=Domain > Controllers,DC=interno,DC=xxxxxxxx,DC=com,DC=br > Not fixing old string component > NOTICE: found 2 expired tombstones, 'samba' will remove them daily, > 'samba-tool domain tombstones expunge' would do that immediately. > Checked 2407 objects (0 errors) > > And executed > > samba-tool dbcheck --cross-ncs --fix --yes > > No erro. > > but same erro in test.... > > smbclient //localhost/netlogon -UAdministrator -c 'ls' > Enter SERVERAD\Administrator's password: > session setup failed: NT_STATUS_INTERNAL_DB_CORRUPTION >Then I am lost now, you do not seem to have any errors, the only other thing I can think of is to try running dbcheck --reindex Rowland