问题列表 - 第49309页

LockObtainFailedException使用solr更新Lucene搜索索引

我已经google了很多.大多数问题都是由JVM崩溃后留下的锁引起的.这不是我的情况.

我有一个包含多个读者和作者的索引.我正在尝试进行批量索引更新(删除和添加 - 这就是lucene更新的方式).我正在使用solr的嵌入式服务器(org.apache.solr.client.solrj.embedded.EmbeddedSolrServer).其他编写者正在使用远程非流式服务器(org.apache.solr.client.solrj.impl.CommonsHttpSolrServer).

我启动了这个大规模的更新,它运行了一段时间,然后死了一个

引起:org.apache.lucene.store.LockObtainFailedException:Lock获取超时:NativeFSLock @/.../lucene-ff783c5d8800fd9722a95494d07d7e37-write.lock

我在solrconfig.xml中调整了锁定超时

<writeLockTimeout>20000</writeLockTimeout>
<commitLockTimeout>10000</commitLockTimeout>
Run Code Online (Sandbox Code Playgroud)

我即将开始阅读lucene代码来解决这个问题.任何帮助,所以我不必这样做会很棒!

编辑:我的所有更新都通过以下代码(Scala):

val req = new UpdateRequest
req.setAction(AbstractUpdateRequest.ACTION.COMMIT, false, false)
req.add(docs)

val rsp = req.process(solrServer)
Run Code Online (Sandbox Code Playgroud)

solrServer 是org.apache.solr.client.solrj.impl.CommonsHttpSolrServer,org.apache.solr.client.solrj.impl.StreamingUpdateSolrServer或org.apache.solr.client.solrj.embedded.EmbeddedSolrServer的实例.

另一个编辑:我停止使用EmbeddedSolrServer,现在可以使用了.我有两个单独的进程来更新solr搜索索引:

1)Servlet 2)命令行工具

命令行工具使用的是EmbeddedSolrServer,它最终会因LockObtainFailedException而崩溃.当我开始使用StreamingUpdateSolrServer时,问题就消失了.

我仍然有点困惑,EmbeddedSolrServer可以工作.有人可以解释一下吗.我认为它会对Servlet进程起到很好的作用,并且在另一个写入时它们会等待.

lucene solr

13
推荐指数
2
解决办法
3万
查看次数

如何创建jQuery Mobile主题

如何创建jQueryMobile主题?

它最好的方式是覆盖CSS吗?

css mobile jquery themes jquery-mobile

24
推荐指数
2
解决办法
2万
查看次数

为什么Option没有折叠方法?

我想知道为什么scala.Option没有fold这样定义的方法:

fold(ifSome: A => B , ifNone: => B)
Run Code Online (Sandbox Code Playgroud)

相当于

map(ifSome).getOrElse(ifNone)
Run Code Online (Sandbox Code Playgroud)

有没有比使用map+ 更好的getOrElse

scala map fold scala-option

35
推荐指数
4
解决办法
8639
查看次数

什么是模态视图?

我想为设置页面做自下而上或上下动画.(这通常是pushViewController)
并发现自下而上可以用...

- (void)presentModalViewController:(UIViewController *)modalViewController animated:(BOOL)animated;
Run Code Online (Sandbox Code Playgroud)

有些人似乎建议你坚持使用Apple的HIG(Apple肯定会将左右动画设为默认的pushViewController)并且不使用模态视图.

我想知道什么是模态视图,并想知道人们使用什么其他动画推送/弹出viewController?

谢谢.

iphone animation pushviewcontroller

11
推荐指数
1
解决办法
1万
查看次数

如何在Mercurial中为非尖端修订创建分支?

在我的回购中,我有修改1到10.我已经推高到5(所以下一个hg push将发布版本6-10).

但我现在必须打断我的工作,结果并非100%完成.所以我想将修订版6-10移到一个新的"实验性"分支中,以允许其他人完成工作而不会破坏每个人的来源.

如何将分支添加到非尖端修订版(在我的情况下:从修订版6开始)?或者我应该使用完全不同的方法?

mercurial branch

6
推荐指数
1
解决办法
2042
查看次数

如何用django-south恢复掉落的桌子?

我想在我的数据库中清除一个表,所以我放弃了表.通常我会manage.py syncdb重新创建它.但是,这里的答案说不再使用syncdb了.那么,我该怎么做呢?

python database django django-syncdb django-south

20
推荐指数
3
解决办法
7138
查看次数

如何将字符串转换为IP地址,反之亦然

如何转换字符串ipAddress(struct in_addr),反之亦然?以及如何打开unsigned long ipAddress?谢谢

c++ string struct ip-address in-addr

70
推荐指数
3
解决办法
18万
查看次数

jqgrid可以支持工具栏过滤器字段中的下拉列表

我正在使用jqgrid和工具栏过滤器.默认情况下,它只是为您提供了一个输入数据的文本框.它是否支持下拉选择组合框,我可以给它一个值列表供他们选择过滤器?

jquery jqgrid

35
推荐指数
1
解决办法
4万
查看次数

什么时候计算列会更新?

我在表中计算了名为"Claim"的列,并且列的定义正在调用一个标量函数.

我创建了10000个声明,所以当我选择那些10000个声明时,计算列将更新是当10000行插入自己时计算列将执行?

请更新我

提前致谢

calculated-columns sql-server-2008

5
推荐指数
1
解决办法
4529
查看次数

在线判断的安全问题

我参与了在Linux机器(Ubuntu)上支持C/C++(如SPOJ,UVA等)的在线编程判断.代码本身是用C++编写的.我必须防止服务器恶意代码.
我打算分两步实现安全性.
1.通过在具有受限环境的文件夹中对chroot系统调用执行代码进行监禁(沙箱).我遇到了一个实用程序Jailkit,但我认为单独的系统调用就足以完成我的工作,因为我不必监禁用户,只执行代码.为了在文件夹中创建运行时环境,我复制了以下文件以及用于创建受限shell的文件(仅允许内置shell)

$ ldd ./a.out
linux-gate.so.1 => (0x00f4c000) libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x007a5000)
libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0x00b80000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00e0c000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0x00110000)
/lib/ld-linux.so.2 (0x00f7c000)

其中a.out是可执行的c ++文件.

遇到的问题:
i)我已经尝试过几个在监狱里运行良好的程序.但任何人都可以确认这些文件对于所有算法密集型代码都是足够的,即不需要显式处理任何系统调用.
ii)如果任何人都可以通过将提供给jail文件夹的运行时库限制为fork(),socket()等而不是代码所期望的,可以建议任何限制某些系统调用的方法.
iii)为了便于了解,我还复制了ldd /usr/bin/gcc和/ usr/bin/gcc所显示的文件.但我无法在监狱中使用gcc,
bash-4.1# /usr/bin/gcc try.c gcc: error trying to exec 'cc1': execvp: No such file or directory
如何修复错误?

2.在ptrace的帮助下跟踪系统调用,如果它使用了一些可疑的系统调用,则杀死正在运行的代码.现在的问题是应该禁止哪些系统调用?我觉得限制fork(),vfork()和execve()会完成工作,因为每个程序都有一个时间限制(几乎不超过10秒).之后它将自动被杀死,除了fork(),vfork()之外没有其他方法可以创建另一个进程.但是既然我的想法受到了我的想象的束缚,如果有人有其他意见来弯曲这里的事情,那将会很棒.


所以基本上我担心i)和ii)指出"遇到的问题",并且如果有人能够想到在限制指向第二点之后的黑客入侵方式.

c c++ linux operating-system

11
推荐指数
1
解决办法
2149
查看次数