Problem with connection database

MCCALL,DON (HP-USA,ex1) don_mccall at hp.com
Wed Aug 29 21:02:45 GMT 2001


Hi Claus,
Tell me a little more about the environment in which this is happening:
 
max concurrent connections to samba (guess; how many pc's max
would be connected to your samba server at any given time):
average concurrent connections to samba(smbstatus during working hrs):
how long (average) between the time you bring samba up, and FIRST log
message involving any tdb database?:
Look in dmesg, and /var/adm/syslog/syslog.log - any unusual messages
there about full system tables, or filesystem full, etc?:
any core files show up?(use "file core" to determine if smbd or not, and
date of core):
 
 
You might want to bring samba down, remove any log files, and then make a
simple cron job that runs every few minutes and  parses all the log files
for any tdb failure.  once it 
spots a tbd failure, the cron job would copy all the log files to another
directory, do an smbstatus to a file in that same directory, and stop.
Then we could try to see what was going on around the FIRST error 
logged, without a lot of extra stuff after the fact.  You might want to 
turn your log level up a bit as well, so that we'd get more info about 
what was being done at the time of the 1st error as well; since you're
going to copy the files off to a safe location once you hit the first error,
hopefully we won't wrap around and miss it.
 
I'm also going to post a message to the samba list to see if anyone else
can look in their logs to see if any of these errors are showing up on 2.2.x
on archetectures OTHER than HP-UX...  Right now the only ones I have seen
are on HP-UX 9.05, 10.20 and 11.xx...  I consider that somewhat 
suspicious...
 
Thanks,
 
Don
 

-----Original Message-----
From: Claus Svarer [mailto:csvarer at nru.dk]
Sent: Tuesday, August 28, 2001 1:16 PM
To: MCCALL,DON (HP-USA,ex1)
Cc: 'samba-technical at lists.samba.org'
Subject: Re: Problem with connection database


Hi Don, 

Regarding problems with .tdb files at a HP-UX 11.00 system. 


The reason that I believe that it has something to do with large files is
that it mostly are four users using Netscape Messenger (with the mail box at
a net drive) that experience the problems. These four people are also the
only ones that has these > 200 MByte files and it is almost always in these
mail files we first experience the problem when the connections.tdb database
are corrupted again. 


I have today tried to compile the Samba CVS (2.2.2-pre) using gcc 3.0.1
instead of the HP ANSI-C compiler, but we see excatly the same problems,
that the connection database chrashes, with error messages that look like: 


[2001/08/28 15:09:10, 0] tdb/tdbutil.c:tdb_log(342) 
  tdb(/usr/local/samba/var/locks/connections.tdb): rec_read bad magic 0x0 at
offset=28399 
[2001/08/28 15:09:10, 0] tdb/tdbutil.c:tdb_log(342) 
  tdb(/usr/local/samba/var/locks/connections.tdb): rec_read bad magic
0x3b8b97af at offset=127840 
[2001/08/28 15:15:17, 0] tdb/tdbutil.c:tdb_log(342) 
  tdb(/usr/local/samba/var/locks/connections.tdb): rec_read bad magic
0x42424242 at offset=82540 
[2001/08/28 15:15:52, 0] smbd/oplock.c:request_oplock_break(1010) 
  request_oplock_break: no response received to oplock break request to pid
23374 on port 59593 for dev = 40020002, inode = 2126454 
  for dev = 40020002, inode = 2126454, tv_sec = 3b8b8ca5, tv_usec = 275c3 
[2001/08/28 15:15:52, 0] smbd/open.c:open_mode_check(554) 
  open_mode_check: exlusive oplock left by process 23374 after break ! For
file Netscape/nru/Cache/fat.db, dev = 40020002, inode = 2 
l 


I don't know if anybody can trace down why the connections .tdb chrashes
(Don MCCALL posted an example of a chrashed tdb lock file to the mailing
list the other day). Could it be a result of what was reported earlier this
month at the samba-tecnical mailing list  by andreas moroder
claudiamoroder at st-ulrich.suedtirol.net Tue, 14 Aug 2001 22:33:54 +0200 that:



Hello,



I did run lclint ( YES I really did it ) over the tdb.c file. I got
thousand, 

no billions of warnings. Most of them are not worth checking except the 

warnings about different types.



at line 150     fl.l_type = rw_type;   l_type is short int , rw_type MAY be 

they are the same, but I don't know if it is guaranted on every machine





at line tdb->locked[list+1].ltype = ltype;    int is assigned to unsigned
int



Another proble are the functions that return values that are never checked.



At line 610 the return value of tdb_oob is ignored.

At line 207 tdb_spinunlock 



and many more.



Most of the functions seem to give back valuable return values, so they 

should all be checked.


Any proposal that could help in solving this problem with the samba at the
hp-ux system will be very welcome. 


Best regards 
Claus Svarer 
  


"MCCALL,DON (HP-USA,ex1)" wrote: 


Hi Claus, 
Please cc the samba-technical list on your emails regarding this, so we can 
get 
more people involved in the issue. 
I am interested in your observation regarding large files - how are you able

to 
tell that accessing these files are causing the problem?  and is there ANY 
way 
you can FORCE this problem to happen, so I could reproduce it under 
controlled 
circumstances? 

Thanks, 
don 
-----Original Message----- 
From: Claus Svarer [ mailto:csvarer at nru.dk <mailto:csvarer at nru.dk> ] 
Sent: Monday, August 27, 2001 11:09 AM 
To: MCCALL,DON (HP-USA,ex1) 
Subject: Re: Problem with connection database 


Hi Don 


Thanks for looking at the problem. I don't believe the error condition have 
been 
wrapped out of the log files because with this low log level (1) the log 
files 
as far as I can see only is wrapped every second day (or about that). 


One other observation that we have had is that it is the really large files 
that 
causes the problems. Especially, there mailbox'es from the email system 
(Netscape Messenger with the files at the net) causes problems probably 
because 
of the files sizes (200 MByte or more). 


Thanks for your help 


BR 
Claus 


"MCCALL,DON (HP-USA,ex1)" wrote: 


> Hi Claus, 
> I haven't had as much time as I would like to look at this, and I'm not as

> up on the tdb stuff as I would like, 
> so I'm posting my initial observations back to the samba-technical list as

> well, in hopes these will suggest a course of action to someone more 
> knowlegable - to me it appears to almost be a race condition of some sort:

> 
> All of the bad magic number reports in the log all boil down to the 
> following magic numbers: 
> 
> magic 0x42424242 
> magic 0x0 
> magic 0x10000 
> magic 0x3122 
> magic 0x41ed 
> magic 0x4d8 
> magic 0xd9fee666 
> 
> And of course 
> 
> magic 0x26011999  is reported when a free call is made, because this is 
the 
> TDB_MAGIC number, not the TDB_MAGIC_FREE number...  what does this mean? 
> something crapped out before changing the magic number to free_magic, but 
> somehow put it in the list to be freed???... 
> 
> The offsets reported all boil down to: 
> 
> 0x0 offset=18676 
> 0x0 offset=2 
> 0x0 offset=24113 
> 0x0 offset=26003 
> 0x0 offset=26019 
> 0x0 offset=4589 
> 0x0 offset=620 
> 0x0 offset=64 
> 0x0 offset=65536 
> 0x10000 offset=2834 
> 0x3122 offset=0 
> 0x41ed offset=45336 
> 0x42424242 offset=1316 
> 0x42424242 offset=18676 
> 0x42424242 offset=2556 
> 0x42424242 offset=5656 
> 0x42424242 offset=620 
> 0x42424242 offset=6276 
> 0x42424242 offset=6896 
> 0x42424242 offset=696 
> 0x42424242 offset=7516 
> 
> 0x4d8 offset=25496 
> 0xd9fee666 offset=11856 
> 0xd9fee666 offset=15576 
> 0xd9fee666 offset=16816 
> 0xd9fee666 offset=18676 
> 0xd9fee666 offset=45336 
> 0xd9fee666 offset=696 
> 0xd9fee666 offset=73596 
> 0xd9fee666 offset=88740 
> 
> and the offsets where it is reporting bad magic because it's NOT 
> TDB_FREE_MAGIC is: 
> 
> 0x26011999 offset=16816 
> 0x26011999 offset=18676 
> 0x26011999 offset=49156 
> 
> Ok, we are trying to FREE the above three offsets; 
> the 1st to got bad magic when the were being tried to 
> read/write or something as well; maybe comparing what was going on when it

> was being freed as opposed to being allocated/read/wrote, and the timing 
of 
> that might give us some clues.... 
> 
> We also have a bunch of tdb_oob len xxxxxxx beyond eof at 
> 
> at the following len/eof's: 
> 
> -1627389928 65536 
> -2147483577 65536 
> -788529101 65536 
> 1109419649 73732 
> 1111638598 73732   >>> this is 0x42424246 
> 1111638598 90112   in fact all of the 
> 1111638618 24576   ones in this range look 
> 1111638618 65536   like we just have the initialized 
> 1111638618 73732   memory except for last byte<<<<<< 
> 131137560 65536 
> 1346978887 65536 
> 16777247 65536 
> 181207044 65536 
> 181207044 73732 
> 485512 65536 
> 65560 65536 
> 875573320 65536 
> 925905992 65536 
> 956301336 65536 
> 
> With all this, it APPEARS that a link in the list is broken, so we are 
just 
> following out to 'random' offsets in the tdb file; we are prevented from 
> making really BAD mistakes by the fact that the TDB_MAGIC for each record 
is 
> checked, and processing stops at a bad magic number; but how the link got 
> corrupted to begin with is still evaiding me... 
> 
> I haven't been able to pin down the initial corruptor in the logs; we may 
> have missed this, and are now seeing only the results of a corruption 
whose 
> log entry has already wrapped. 
> 
> Hope this will suggest something to some one more knowlegable on the tdb 
> than myself.  I still have your logs, etc. if someone else on the list 
> wishes to help out. 
> Don 
> 
> -----Original Message----- 
> From: Claus Svarer [ mailto:csvarer at nru.dk <mailto:csvarer at nru.dk> ] 
> Sent: Friday, August 24, 2001 5:33 
> To: MCCALL,DON (HP-USA,ex1) 
> Subject: Problem with connection database 
> 
> Hi Don 
> 
> Our server have now recreated the connection.tdb error again. I have 
> made a gzipped tar file of all the log and lock files that was at the 
> server when it chrashed (attached to this mail). I don't know if you can 
> find out what happens, but as you know the error message is: 
> 
> fog:/users/csvarer 22 : smbstatus | more 
> INFO: Debug class all level = 1   (pid 843 from pid 843) 
> tdb(/usr/local/samba/var/locks/connections.tdb): rec_read bad magic 
> 0x42424242 at offset=5656 
> 
> If I search int the log file I can find several machines that sees this 
> problem. At the time where we observed the problem no new machines was 
> authorizing against the samba server. 
> 
> Best regards 
> Claus





More information about the samba-technical mailing list