Re: Bug#557553: geneweb: Search and navigaition fails
Stéphane Glondu a écrit :
> I was able to reproduce the bug on an amd64 box. Here is a backtrace:
>
> Wserver: uncaught exception: End_of_file
> Raised by primitive operation at file "", line 0, characters 0-0
> Called from file "some.ml", line 664, characters 14-44
> Called from file "some.ml", line 688, characters 7-46
> Called from file "request.ml", line 734, characters 17-35
> Called from file "request.ml", line 754, characters 12-39
> Re-raised at file "request.ml", line 755, characters 38-41
> Called from file "gwd.ml", line 1467, characters 23-116
> Called from file "gwd.ml", line 1635, characters 12-95
> Called from file "wserver.ml", line 338, characters 6-51
More precisely, in database.ml, around line 441:
if Sys.file_exists fname_inx_acc then
let ic_inx_acc = Secure.open_in_bin fname_inx_acc in
do {
seek_in ic_inx_acc (Iovalue.sizeof_long * (table_size + i));
let pos = input_binary_int ic_inx_acc in
close_in ic_inx_acc;
seek_in ic_inx pos;
(Iovalue.input ic_inx : array dsk_istr)
}
else (* compatibility *)
where:
- fname_inx_acc = "/var/lib/geneweb/test.gwb/names.acc"
- size of fname_inx_acc = 131064
- Iovalue.sizeof_long * (table_size + i) = 131864
Obviously, Iovalue.sizeof_long is too big. Dividing it by two makes the
original query work (it seems). But I cannot give any guarantee that it
doesn't break something else.
Has the upstream author been contacted about this issue?
Cheers,
--
Stéphane
Reply to: