我正在使用Yocto Dizzy在具有1GHz处理器的LogicPD鱼雷上运行CouchDB。我连接了多个Android设备,进行更改,并通过一些Java和Nodejs代码与此数据库同步。在大多数情况下,数据库似乎可以在所有设备上正确复制。
但是,我确实经常遇到一个问题,即设备将不同步,并且该设备上的Android应用必须重新启动。所谓“不同步”,是指更改是在一台设备上进行的,已同步到数据库,而未显示在另一台设备上。我正在尝试解决此问题,但在Android方面却找不到任何错误。我在CouchDB日志中看到的错误是:
[Fri, 25 Sep 2015 14:47:59 GMT] [error] [<0.222.0>] ** Generic server <0.222.0> terminating
** Last message in was {'EXIT',<0.217.0>,killed}
** When Server state == {state,"http://X.XXX.X.X:XXXX/task/",20,[],
[<0.338.0>],
{[],[]}}
** Reason for termination ==
** killed
[Fri, 25 Sep 2015 14:47:59 GMT] [error] [<0.222.0>] {error_report,<0.31.0>,
{<0.222.0>,crash_report,
[[{initial_call,
{couch_replicator_httpc_pool,init,['Argument__1']}},
{pid,<0.222.0>},
{registered_name,[]},
{error_info,
{exit,killed,
[{gen_server,terminate,7,
[{file,"gen_server.erl"},{line,804}]},
{proc_lib,init_p_do_apply,3,
[{file,"proc_lib.erl"},{line,237}]}]}},
{ancestors,
[<0.217.0>,couch_replicator_job_sup,
couch_primary_services,couch_server_sup,<0.32.0>]},
{messages,[]},
{links,[<0.338.0>]},
{dictionary,[]},
{trap_exit,true},
{status,running},
{heap_size,610},
{stack_size,27},
{reductions,390}],
[]]}}
[Fri, 25 Sep 2015 14:48:06 GMT] [error] [<0.130.0>] Error in replication `b16486bad369b219600dbd5bf0478e81+continuous+create_target` (triggered by document `9be140c9aa6334820aed80fa910275e4`): timeout
Restarting replication in 5 seconds.
[Fri, 25 Sep 2015 14:48:06 GMT] [error] [<0.88.0>] {error_report,<0.31.0>,
{<0.88.0>,supervisor_report,
[{supervisor,{local,couch_replicator_job_sup}},
{errorContext,shutdown_error},
{reason,killed},
{offender,
[{pid,<0.157.0>},
{name,
"98e4832e6f31a0962493d26092b5fe4e+continuous+create_target"},
{mfargs,{gen_server,start_link,undefined}},
{restart_type,temporary},
{shutdown,250},
{child_type,worker}]}]}}
[在使用i7的CentOS上运行相同的程序和数据库时,一切运行正常。我已经尝试过使用tcp / ip内核设置以及CouchDBs设置(local.ini,特别是os_process和timeout选项)进行处理。
有人在这方面有经验吗?任何帮助将不胜感激!
您解决了吗?如果您的回答是,我想知道如何。谢谢。