Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Won't Fix
-
None
-
None
-
None
-
None
Description
via dev@ by Peta Bogdan <bog495@gmail.com>
Hello,
I have a small database around 120 MB with approximately 16,000 documents.
However, it happens (also from futon) that I get this error:
[Tue, 17 Jan 2012 07:22:01 GMT] [error] [<0.185.0>] {error_report,<0.30.0>,
{<0.185.0>,crash_report,
[[{initial_call,{couch_file,init,['Argument__1']}},
,
{error_info,
{exit,
{{badmatch,
{ok,
9_MEGABYTES_BINARY}},
[{couch_file,read_raw_iolist_int,3},
{couch_file,maybe_read_more_iolist,4},
{couch_file,handle_call,3},
{gen_server,handle_msg,5},
{proc_lib,init_p_do_apply,3}]},
[{gen_server,terminate,6},
{proc_lib,init_p_do_apply,3}]}},
{ancestors,[<0.184.0>]},
{messages,
[{'$gen_call',
{<0.10840.18>,#Ref<0.0.3.20907>},
bytes}]},
{links,[<0.190.0>]},
{dictionary,[]},
{trap_exit,true},
{status,running},
{heap_size,1597},
{stack_size,24},
{reductions,65666}],
[{neighbour,
[{pid,<0.190.0>},
{registered_name,[]}
,
{initial_call,
{couch_ref_counter,init,['Argument__1']}},
{current_function,{gen_server,loop,6}},
,
,
,
,
,
,
,
,
]}]]}}
If this error occurs to frequently causes couch_server to reach its max
restart frequency causing the entire supervision tree to shutdown and hence
the database server instance disappears.
The function couch_file:read_raw_iolist_int/3 calls file:pread which
returns
. This Binary has almost 9 megabytes in size, which is
very strange.
I think this does mean that the function file:pread/3 is instructed to read
from wrong position.
The only reason I can think of is that the value of 'TotalBytes' from line
(1) doesn't match the value of 'TotalBytes' from line (2)
(1) TotalBytes = calculate_total_read_len(BlockOffset, Len),
(2)
= file:pread(Fd, Pos, TotalBytes),
The possible answer would be that in certain conditions the function
calculate_total_read_len/2 doesn't return the expected value.
Server: CouchDB/1.1.1 (Erlang OTP/R14B04)
OS: OpenBSD 5.0 GENERIC.MP#63 amd64
Now, the trouble is how to circumvent this situation.
Thank you in advance,
Bogdan