[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: