Carl Lowenstein wrote:
> On 8/18/07, Carl Lowenstein <[EMAIL PROTECTED]> wrote:
>> On 8/18/07, James G. Sack (jim) <[EMAIL PROTECTED]> wrote:
>>> Carl Lowenstein wrote:
>>>> On 8/18/07, James G. Sack (jim) <[EMAIL PROTECTED]> wrote:
>>>>> Carl Lowenstein wrote:
>>>>>> On 8/17/07, Gus Wirth <[EMAIL PROTECTED]> wrote:
>>>>>>> Fedora 5 has mlocate, which is different from both but tries to be
>>>>>>> compatible. It is written by Miloslav Trmac of Redhat. It doesn't seem
>>>>>>> to have any file size issues.
>>>>>>>
>>>>> I have confirmed (in ubu 7.04 32bit) the behavior you describe. Running
>>>>> an strace is informative: It shows calls to lstat64 and access.
>>>> Are you tracing locate or updatedb? In other words, is the problem
>>>> in using the database or in building it.
>>> locate.
>>> sudo strace -o /tmp/s.out locate '*DVD*iso'
>>>
>>> I know the leading * is redundant, but maybe only is some locates. It
>>> does seem to behave different in {s,m}locate on ubu704/f7.
>>>
>>>>> On a 64bit f7, there are calls to access, but not any lstat.
>>>>>
>>>>> I bet a look at the code in the vicinity of the lstat64 call might show
>>>>> a variable type mismatch.
>>>>
>> So it is fixed there. Now I will look for slocate sources.
>>
> Slocate was replaced by Mlocate in FC4. Had to download 4 CDs worth
> of FC3 sources because I couldn't find them here online, and couldn't
> find burned CDs either. Fortunately RoadRunner is working well today,
> and I got 4 parallel streams at 200kB/sec from the RedHat FTP site.
>
> Now I have source for the slocate that matches the one I am using. Or
> "amusing" as those two words came out on first typing. Build from
> source, try running on a copy of the resident slocate.db. The sample
>> 2GB files were not "slocate"d as usual. Tried strace, learned that
> the lstat64 calls are all for reading system things like ld.so.cache
> and libc.so.6 and nsswitch.conf etc. etc. And one for reading
> slocate.db.
>
> All the hard work is done reading slocate.db in 4kb chunks. It is a
> funny compressed ASCII thing, with common leading strings such as
> directory names suppressed. If, for instance, I do
>
> $ sudo strings slocate.db | grep -i centos
> I find in the output the string "CentOS-5.0-i386-bin-DVD" which is the
> name of the directory where I expect to find one of the >2GB files.
> But I don't find the name of the file there. So maybe it never got
> into the database. Now I have to look around some more.
>
> strings is a powerful tool. I find that using the names of the two
> corner cases, the file just under 2GB and the file just over 2GB, the
> first one is present in slocate.db and the second one is not. So I
> have been looking in the wrong place for the problem.
Well, the symptom is different in my ubuntu 7.04. One of the first
things I checked was the /var/log/slocate/slocate.db itself. Strings
works fine. I also like mc -v (midnight commander's viewer).
the 4.1GB KNOPPIX DVD iso is in the db but doesn't get reported by a
locate (-> slocate) search. That's when I did the strace, and found the
interesting parts. Heres some more of the same with a command
sudo strace 2>&1 locate 'KNOP*iso' | tail -15
- - -pasted: .. as a quotation, to see if it's easier to read in email
> read(3, ".4-5ubuntu3.1_i386.deb\0\3curl3_7."..., 4096) = 4096
> read(3, "2-1_all.deb\0\0libadns1_1.4-0.1bui"..., 4096) = 2293
> lstat64("/data/iso/KNOPPIX_V5.1.1CD-2007-01-04-EN.iso",
> {st_mode=S_IFREG|0664, st_size=730177536, ...}) = 0
> access("/data/iso/KNOPPIX_V5.1.1CD-2007-01-04-EN.iso", F_OK) = 0
> access("/data/iso", R_OK) = 0
> access("/data", R_OK) = 0
> fstat64(1, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0
> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
> 0xb7f9e000
> lstat64("/data/iso/KNOPPIX_V5.1.1DVD-2007-01-04-EN.iso",
> {st_mode=S_IFREG|0644, st_size=4324202496, ...}) = 0
> read(3, "", 4096) = 0
> close(3) = 0
> write(1, "/data/iso/KNOPPIX_V5.1.1CD-2007-"...,
> 45/data/iso/KNOPPIX_V5.1.1CD-2007-01-04-EN.iso
> ) = 45
> exit_group(0) = ?
> Process 14052 detached
- - -end paste
>
> Names of files of size >2GB do not make it into the slocate database.
Seems not the case in ubu704 or f7.
>
> Stay tuned for more information, as I go look at updatedb. Back in
> the olden days, updatedb was a shell script. About 30 lines, as I
> recall. In GNU findutils, it still is a shell script but has grown by
> about a factor of 10. In FC3 it is a symlink to slocate.
Regards,
..jim
--
[email protected]
http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-list