# Attachment indexing breaks shards or hangs during indexing

**URL:** <https://discuss.elastic.co/t/attachment-indexing-breaks-shards-or-hangs-during-indexing/3842>\
**Category:** Elasticsearch\
**Created:** [January 30, 2011, 8:13pm UTC](https://discuss.elastic.co/t/attachment-indexing-breaks-shards-or-hangs-during-indexing/3842 "2011-01-30T20:13:08Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Travis\_Groth](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/travis_groth/32/3273_2.png) [@Travis\_Groth](https://discuss.elastic.co/u/Travis_Groth)\
**Post date:** [January 30, 2011, 8:13pm UTC](https://discuss.elastic.co/t/attachment-indexing-breaks-shards-or-hangs-during-indexing/3842/1 "2011-01-30T20:13:08Z")

</div>

Hi all,

I'm looking at incorporating ES into our environment to allow us to  
search some large databases that simply don't do well with standard SQL  
queries to find things. First, I just want to say I am very impressed  
with ES so far. Great stuff.

One of the big requirements I need to test out is indexing not just of  
plain text but of attachments - usually standard business docs like  
docx, html, pdf, xls, etc. After getting the plugin installed I am  
seeing two issues. I can reproduce from a fresh index/jvm.

1. Image files (GIFs in particular in my testing) seem to cause issues  
in replication between nodes - it will index on the node it was posted  
to (or perhaps the primary node for the shard? My mental picture of the  
clustering side of things isn't entirely formed yet) and show up fine if  
I try to pull up that id, but if I try to retrieve it from the other  
node I'll get a 404 error. On the node I posted the data to I'll get  
this in the log:

[2011-01-29 17:20:26,063][WARN][action.index] [Rafferty]  
Failed to perform indices/index/shard/index on replica Index Shard  
[tickets][2]  
org.elasticsearch.transport.RemoteTransportException: [Nathaniel  
Essex][inet[/10.140.20.168:9300]][indices/index/shard/index/replica]  
Caused by: java.lang.NoClassDefFoundError: Could not initialize class  
sun.java2d.Disposer  
at  
javax.imageio.stream.FileCacheImageInputStream.(FileCacheImageInputStream.java:94)  
at  
com.sun.imageio.spi.InputStreamImageInputStreamSpi.createInputStreamInstance(InputStreamImageInputStreamSpi.java:51)  
at javax.imageio.ImageIO.createImageInputStream(ImageIO.java:331)  
at org.apache.tika.parser.image.ImageParser.parse(ImageParser.java:72)  
at  
org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:197)  
at  
org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:197)  
at  
org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:137)  
at org.apache.tika.Tika.parseToString(Tika.java:290)  
at  
org.elasticsearch.index.mapper.xcontent.AttachmentMapper.parse(AttachmentMapper.java:254)  
at  
org.elasticsearch.index.mapper.xcontent.ObjectMapper.serializeValue(ObjectMapper.java:377)  
at  
org.elasticsearch.index.mapper.xcontent.ObjectMapper.parse(ObjectMapper.java:295)  
at  
org.elasticsearch.index.mapper.xcontent.ObjectMapper.serializeObject(ObjectMapper.java:316)  
at  
org.elasticsearch.index.mapper.xcontent.ObjectMapper.serializeArray(ObjectMapper.java:360)  
at  
org.elasticsearch.index.mapper.xcontent.ObjectMapper.parse(ObjectMapper.java:289)  
at  
org.elasticsearch.index.mapper.xcontent.ObjectMapper.serializeObject(ObjectMapper.java:316)  
at  
org.elasticsearch.index.mapper.xcontent.ObjectMapper.serializeArray(ObjectMapper.java:360)  
at  
org.elasticsearch.index.mapper.xcontent.ObjectMapper.parse(ObjectMapper.java:289)  
at  
org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper.parse(XContentDocumentMapper.java:430)  
at  
org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper.parse(XContentDocumentMapper.java:368)  
at  
org.elasticsearch.index.shard.service.InternalIndexShard.prepareIndex(InternalIndexShard.java:230)  
at  
org.elasticsearch.action.index.TransportIndexAction.shardOperationOnReplica(TransportIndexAction.java:187)  
at  
org.elasticsearch.action.support.replication.TransportShardReplicationOperationAction$ReplicaOperationTransportHandler.messageReceived(TransportShardReplicationOperationAction.java:180)  
at  
org.elasticsearch.action.support.replication.TransportShardReplicationOperationAction$ReplicaOperationTransportHandler.messageReceived(TransportShardReplicationOperationAction.java:173)  
at  
org.elasticsearch.transport.netty.MessageChannelHandler$3.run(MessageChannelHandler.java:195)  
at  
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)  
at  
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)  
at java.lang.Thread.run(Thread.java:662)  
[2011-01-29 17:20:26,063][WARN][cluster.action.shard] [Rafferty]  
sending failed shard for [tickets][2], node[I6QZH35TSTiYm0Ud5EIQ3A],  
[R], s[STARTED], reason [Failed to perform [indices/index/shard/index]  
on replica, message [RemoteTransportException[[Nathaniel  
Essex][inet[/10.140.20.168:9300]][indices/index/shard/index/replica]];  
nested: NoClassDefFoundError[Could not initialize class  
sun.java2d.Disposer]; ]]

On the other node I'll see this:

[2011-01-29 17:20:27,605][WARN][cluster.action.shard] [Nathaniel  
Essex] received shard failed for [tickets][2],  
node[I6QZH35TSTiYm0Ud5EIQ3A], [R], s[STARTED], reason [Fail  
ed to perform [indices/index/shard/index] on replica, message  
[RemoteTransportException[[Nathaniel  
Essex][inet[/10.140.20.168:9300]][indices/index/shard/index/replica]];  
nested:  
NoClassDefFoundError[Could not initialize class sun.java2d.Disposer]; ]]

Just looks like a missing class I guess, but obviously an issue.  
Doesn't seem to happen with all attachments. If this happens enough, I  
seem to get full shard failures where they'll go offline. I haven't  
been able to reproduce this particular aspect of the problem, though, so  
that may have been unrelated.

1. When I encountered issue #1 I figured I could just filter out image  
files since we really don't care about them anyway. Once I did this my  
index build went along at a nice clip until I ran into a .doc file. I  
basically time out waiting for a server response from the post. No  
errors come back, nothing in the log on either node (I am running  
logging at DEBUG). I just don't get a response. The document is small  
so it isn't transport time that is causing the timeout. I don't see  
much of anything to troubleshoot or provide more information with. No  
message is logged. I can use the tika jar directly and it returns data  
from the exact same document without issue in a very reasonable amount  
of time. Maybe 5 seconds including jvm startup. It doesn't seem to  
happen with _all_ .doc files, which is odd. FWIW here is what `file`  
tells me about the document in question -

CDF V2 Document, Little Endian, Os: Windows, Version 6.0

If there's any more info that would assist let me know and I will be  
happy to provide it. I am going to do another pass and log the files  
that cause the timeout and see if I can find any more of a pattern to it.

Thanks!

Travis

---

<div class="post-metadata">

**Author:** ![Travis\_Groth](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/travis_groth/32/3273_2.png) [@Travis\_Groth](https://discuss.elastic.co/u/Travis_Groth)\
**Post date:** [February 1, 2011, 4:15am UTC](https://discuss.elastic.co/t/attachment-indexing-breaks-shards-or-hangs-during-indexing/3842/2 "2011-02-01T04:15:48Z")

</div>

Does anyone have any insight to this?

I did a larger pass with some logging of what I tried to index and it  
looks like PDFs also have a similar problem with being unable to load  
one of the classes that tika uses:

[2011-02-01 03:55:05,325][WARN][action.index] [Logan]  
Failed to perform indices/index/shard/index on replica Index Shard  
[tickets][2]  
org.elasticsearch.transport.RemoteTransportException: [Strange,  
Stephen][inet[/10.140.20.168:9300]][indices/index/shard/index/replica]  
Caused by: java.lang.NoClassDefFoundError: Could not initialize class  
org.apache.pdfbox.pdmodel.PDPage  
at  
org.apache.pdfbox.pdmodel.PDPageNode.getAllKids(PDPageNode.java:201)  
at  
org.apache.pdfbox.pdmodel.PDPageNode.getAllKids(PDPageNode.java:207)  
at  
org.apache.pdfbox.pdmodel.PDPageNode.getAllKids(PDPageNode.java:207)  
at  
org.apache.pdfbox.pdmodel.PDPageNode.getAllKids(PDPageNode.java:175)  
at  
org.apache.pdfbox.pdmodel.PDDocumentCatalog.getAllPages(PDDocumentCatalog.java:  
212)  
at  
org.apache.pdfbox.util.PDFTextStripper.writeText(PDFTextStripper.java:  
321)  
at  
org.apache.pdfbox.util.PDFTextStripper.getText(PDFTextStripper.java:  
241)  
at org.apache.tika.parser.pdf.PDF2XHTML.process(PDF2XHTML.java:  
53)  
at org.apache.tika.parser.pdf.PDFParser.parse(PDFParser.java:  
90)  
at  
org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:197)  
at  
org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:197)  
at  
org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:  
137)  
at org.apache.tika.Tika.parseToString(Tika.java:290)  
at  
org.elasticsearch.index.mapper.xcontent.AttachmentMapper.parse(AttachmentMapper.java:  
254)  
at  
org.elasticsearch.index.mapper.xcontent.ObjectMapper.serializeValue(ObjectMapper.java:  
377)  
at  
org.elasticsearch.index.mapper.xcontent.ObjectMapper.parse(ObjectMapper.java:  
295)  
at  
org.elasticsearch.index.mapper.xcontent.ObjectMapper.serializeObject(ObjectMapper.java:  
316)  
at  
org.elasticsearch.index.mapper.xcontent.ObjectMapper.serializeArray(ObjectMapper.java:  
360)  
at  
org.elasticsearch.index.mapper.xcontent.ObjectMapper.parse(ObjectMapper.java:  
289)  
at  
org.elasticsearch.index.mapper.xcontent.ObjectMapper.serializeObject(ObjectMapper.java:  
316)  
at  
org.elasticsearch.index.mapper.xcontent.ObjectMapper.serializeArray(ObjectMapper.java:  
360)  
at  
org.elasticsearch.index.mapper.xcontent.ObjectMapper.parse(ObjectMapper.java:  
289)  
at  
org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper.parse(XContentDocumentMapper.java:  
430)  
at  
org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper.parse(XContentDocumentMapper.java:  
368)  
at  
org.elasticsearch.index.shard.service.InternalIndexShard.prepareIndex(InternalIndexShard.java:  
230)  
at  
org.elasticsearch.action.index.TransportIndexAction.shardOperationOnReplica(TransportIndexAction.java:  
187)  
at  
org.elasticsearch.action.support.replication.TransportShardReplicationOperationAction  
$ReplicaOperationTransportHandler.messageReceived(TransportShardReplicationOperat  
ionAction.java:180)  
at  
org.elasticsearch.action.support.replication.TransportShardReplicationOperationAction  
$ReplicaOperationTransportHandler.messageReceived(TransportShardReplicationOperat  
ionAction.java:173)  
at org.elasticsearch.transport.netty.MessageChannelHandler  
$3.run(MessageChannelHandler.java:195)  
at java.util.concurrent.ThreadPoolExecutor  
$Worker.runTask(ThreadPoolExecutor.java:886)  
at java.util.concurrent.ThreadPoolExecutor  
$Worker.run(ThreadPoolExecutor.java:908)  
at java.lang.Thread.run(Thread.java:662)

Once again, the document is indexed on the node that I posted the data  
to via REST, and missing on the other node. After letting my index  
script throw data at it all day I came to find several failures like  
this, and more sun.java2d.Disposer errors even though I am skipping  
all images. Perhaps they're embedded in other document types? At  
some point, the node I was using to index simply stopped acknowledging  
posts, even for completely plain text data (this is a new symptom). I  
had to completely recreate the index for it to accept data again. I  
am, however, storing \_source now to aid in debugging so perhaps that  
is related.

Is there something I am maybe missing in the plugin setup or something  
I have to drop into the lib directory? I simply ran

./plugin install mapper-attachments

in the bin directory as others had mentioned on the list. I tried  
putting the tika-app jar into lib but that broke logging, at least, so  
that doesn't appear to be the solution. Does anyone know what's going  
on or what I am doing wrong?

Thanks!

Travis

On Jan 30, 3:13 pm, Travis Groth [tgr...@gmail.com](mailto:tgr...@gmail.com) wrote:

> Hi all,
> 
> I'm looking at incorporating ES into our environment to allow us to  
> search some large databases that simply don't do well with standard SQL  
> queries to find things. First, I just want to say I am very impressed  
> with ES so far. Great stuff.
> 
> One of the big requirements I need to test out is indexing not just of  
> plain text but of attachments - usually standard business docs like  
> docx, html, pdf, xls, etc. After getting theplugininstalled I am  
> seeing two issues. I can reproduce from a fresh index/jvm.
> 
> 1. Image files (GIFs in particular in my testing) seem to cause issues  
> in replication between nodes - it will index on the node it was posted  
> to (or perhaps the primary node for the shard? My mental picture of the  
> clustering side of things isn't entirely formed yet) and show up fine if  
> I try to pull up that id, but if I try to retrieve it from the other  
> node I'll get a 404 error. On the node I posted the data to I'll get  
> this in the log:
> 
> [2011-01-29 17:20:26,063][WARN][action.index] [Rafferty]  
> Failed to perform indices/index/shard/index on replica Index Shard  
> [tickets][2]  
> org.elasticsearch.transport.RemoteTransportException: [Nathaniel  
> Essex][inet[/10.140.20.168:9300]][indices/index/shard/index/replica]  
> Caused by: java.lang.NoClassDefFoundError: Could not initialize class  
> sun.java2d.Disposer  
> at  
> javax.imageio.stream.FileCacheImageInputStream.(FileCacheImageInputSt ream.java:94)  
> at  
> com.sun.imageio.spi.InputStreamImageInputStreamSpi.createInputStreamInstanc e(InputStreamImageInputStreamSpi.java:51)  
> at javax.imageio.ImageIO.createImageInputStream(ImageIO.java:331)  
> at org.apache.tika.parser.image.ImageParser.parse(ImageParser.java:72)  
> at  
> org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:197)  
> at  
> org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:197)  
> at  
> org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:137)  
> at org.apache.tika.Tika.parseToString(Tika.java:290)  
> at  
> org.elasticsearch.index.mapper.xcontent.AttachmentMapper.parse(AttachmentMa pper.java:254)  
> at  
> org.elasticsearch.index.mapper.xcontent.ObjectMapper.serializeValue(ObjectM apper.java:377)  
> at  
> org.elasticsearch.index.mapper.xcontent.ObjectMapper.parse(ObjectMapper.jav a:295)  
> at  
> org.elasticsearch.index.mapper.xcontent.ObjectMapper.serializeObject(Object Mapper.java:316)  
> at  
> org.elasticsearch.index.mapper.xcontent.ObjectMapper.serializeArray(ObjectM apper.java:360)  
> at  
> org.elasticsearch.index.mapper.xcontent.ObjectMapper.parse(ObjectMapper.jav a:289)  
> at  
> org.elasticsearch.index.mapper.xcontent.ObjectMapper.serializeObject(Object Mapper.java:316)  
> at  
> org.elasticsearch.index.mapper.xcontent.ObjectMapper.serializeArray(ObjectM apper.java:360)  
> at  
> org.elasticsearch.index.mapper.xcontent.ObjectMapper.parse(ObjectMapper.jav a:289)  
> at  
> org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper.parse(XConte ntDocumentMapper.java:430)  
> at  
> org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper.parse(XConte ntDocumentMapper.java:368)  
> at  
> org.elasticsearch.index.shard.service.InternalIndexShard.prepareIndex(Inter nalIndexShard.java:230)  
> at  
> org.elasticsearch.action.index.TransportIndexAction.shardOperationOnReplica (TransportIndexAction.java:187)  
> at  
> org.elasticsearch.action.support.replication.TransportShardReplicationOpera tionAction$ReplicaOperationTransportHandler.messageReceived(TransportShardR eplicationOperationAction.java:180)  
> at  
> org.elasticsearch.action.support.replication.TransportShardReplicationOpera tionAction$ReplicaOperationTransportHandler.messageReceived(TransportShardR eplicationOperationAction.java:173)  
> at  
> org.elasticsearch.transport.netty.MessageChannelHandler$3.run(MessageChanne lHandler.java:195)  
> at  
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.j ava:886)  
> at  
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java: 908)  
> at java.lang.Thread.run(Thread.java:662)  
> [2011-01-29 17:20:26,063][WARN][cluster.action.shard] [Rafferty]  
> sending failed shard for [tickets][2], node[I6QZH35TSTiYm0Ud5EIQ3A],  
> [R], s[STARTED], reason [Failed to perform [indices/index/shard/index]  
> on replica, message [RemoteTransportException[[Nathaniel  
> Essex][inet[/10.140.20.168:9300]][indices/index/shard/index/replica]];  
> nested: NoClassDefFoundError[Could not initialize class  
> sun.java2d.Disposer]; ]]
> 
> On the other node I'll see this:
> 
> [2011-01-29 17:20:27,605][WARN][cluster.action.shard] [Nathaniel  
> Essex] received shard failed for [tickets][2],  
> node[I6QZH35TSTiYm0Ud5EIQ3A], [R], s[STARTED], reason [Fail  
> ed to perform [indices/index/shard/index] on replica, message  
> [RemoteTransportException[[Nathaniel  
> Essex][inet[/10.140.20.168:9300]][indices/index/shard/index/replica]];  
> nested:  
> NoClassDefFoundError[Could not initialize class sun.java2d.Disposer]; ]]
> 
> Just looks like a missing class I guess, but obviously an issue.  
> Doesn't seem to happen with all attachments. If this happens enough, I  
> seem to get full shard failures where they'll go offline. I haven't  
> been able to reproduce this particular aspect of the problem, though, so  
> that may have been unrelated.
> 
> 1. When I encountered issue #1 I figured I could just filter out image  
> files since we really don't care about them anyway. Once I did this my  
> index build went along at a nice clip until I ran into a .doc file. I  
> basically time out waiting for a server response from the post. No  
> errors come back, nothing in the log on either node (I am running  
> logging at DEBUG). I just don't get a response. The document is small  
> so it isn't transport time that is causing the timeout. I don't see  
> much of anything to troubleshoot or provide more information with. No  
> message is logged. I can use the tika jar directly and it returns data  
> from the exact same document without issue in a very reasonable amount  
> of time. Maybe 5 seconds including jvm startup. It doesn't seem to  
> happen with _all_ .doc files, which is odd. FWIW here is what `file`  
> tells me about the document in question -
> 
> CDF V2 Document, Little Endian, Os: Windows, Version 6.0
> 
> If there's any more info that would assist let me know and I will be  
> happy to provide it. I am going to do another pass and log the files  
> that cause the timeout and see if I can find any more of a pattern to it.
> 
> Thanks!
> 
> Travis

---

<div class="post-metadata">

**Author:** ![Travis\_Groth](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/travis_groth/32/3273_2.png) [@Travis\_Groth](https://discuss.elastic.co/u/Travis_Groth)\
**Post date:** [February 2, 2011, 4:04pm UTC](https://discuss.elastic.co/t/attachment-indexing-breaks-shards-or-hangs-during-indexing/3842/3 "2011-02-02T16:04:44Z")

</div>

After upgrading to 0.14.3 and turning on additional debug logging on  
the index and gateway I found this started showing up in close  
proximity to the other errors:

[2011-02-01 22:26:31,626][WARN][cluster.action.shard] [Scarlet  
Witch] sending failed shard for [tickets][0], node[MbTXMpNLRn-  
FKfUDILzFww], [R], s[STARTED], reason [Failed to perform [indices/  
index/shard/index] on replica, message  
[RemoteTransportException[[Fasaud][inet[/10.140.20.168:9300]][indices/  
index/shard/index/replica]]; nested: UnsatisfiedLinkError[/usr/java/  
jdk1.6.0\_23/jre/lib/  
amd64/xawt/libmawt.so: libXtst.so.6: cannot open shared object file:  
No such file or directory]; ]]

On a hunch, I installed libXtst and it would seem all the issues I was  
seeing have cleared up.

Travis

On Jan 31, 11:15 pm, Travis [tgr...@gmail.com](mailto:tgr...@gmail.com) wrote:

> Does anyone have any insight to this?
> 
> I did a larger pass with some logging of what I tried to index and it  
> looks like PDFs also have a similar problem with being unable to load  
> one of the classes that tika uses:
> 
> [2011-02-01 03:55:05,325][WARN][action.index] [Logan]  
> Failed to perform indices/index/shard/index on replica Index Shard  
> [tickets][2]  
> org.elasticsearch.transport.RemoteTransportException: [Strange,  
> Stephen][inet[/10.140.20.168:9300]][indices/index/shard/index/replica]  
> Caused by: java.lang.NoClassDefFoundError: Could not initialize class  
> org.apache.pdfbox.pdmodel.PDPage  
> at  
> org.apache.pdfbox.pdmodel.PDPageNode.getAllKids(PDPageNode.java:201)  
> at  
> org.apache.pdfbox.pdmodel.PDPageNode.getAllKids(PDPageNode.java:207)  
> at  
> org.apache.pdfbox.pdmodel.PDPageNode.getAllKids(PDPageNode.java:207)  
> at  
> org.apache.pdfbox.pdmodel.PDPageNode.getAllKids(PDPageNode.java:175)  
> at  
> org.apache.pdfbox.pdmodel.PDDocumentCatalog.getAllPages(PDDocumentCatalog.j ava:  
> 212)  
> at  
> org.apache.pdfbox.util.PDFTextStripper.writeText(PDFTextStripper.java:  
> 321)  
> at  
> org.apache.pdfbox.util.PDFTextStripper.getText(PDFTextStripper.java:  
> 241)  
> at org.apache.tika.parser.pdf.PDF2XHTML.process(PDF2XHTML.java:  
> 53)  
> at org.apache.tika.parser.pdf.PDFParser.parse(PDFParser.java:  
> 90)  
> at  
> org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:197)  
> at  
> org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:197)  
> at  
> org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:  
> 137)  
> at org.apache.tika.Tika.parseToString(Tika.java:290)  
> at  
> org.elasticsearch.index.mapper.xcontent.AttachmentMapper.parse(AttachmentMa pper.java:  
> 254)  
> at  
> org.elasticsearch.index.mapper.xcontent.ObjectMapper.serializeValue(ObjectM apper.java:  
> 377)  
> at  
> org.elasticsearch.index.mapper.xcontent.ObjectMapper.parse(ObjectMapper.jav a:  
> 295)  
> at  
> org.elasticsearch.index.mapper.xcontent.ObjectMapper.serializeObject(Object Mapper.java:  
> 316)  
> at  
> org.elasticsearch.index.mapper.xcontent.ObjectMapper.serializeArray(ObjectM apper.java:  
> 360)  
> at  
> org.elasticsearch.index.mapper.xcontent.ObjectMapper.parse(ObjectMapper.jav a:  
> 289)  
> at  
> org.elasticsearch.index.mapper.xcontent.ObjectMapper.serializeObject(Object Mapper.java:  
> 316)  
> at  
> org.elasticsearch.index.mapper.xcontent.ObjectMapper.serializeArray(ObjectM apper.java:  
> 360)  
> at  
> org.elasticsearch.index.mapper.xcontent.ObjectMapper.parse(ObjectMapper.jav a:  
> 289)  
> at  
> org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper.parse(XConte ntDocumentMapper.java:  
> 430)  
> at  
> org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper.parse(XConte ntDocumentMapper.java:  
> 368)  
> at  
> org.elasticsearch.index.shard.service.InternalIndexShard.prepareIndex(Inter nalIndexShard.java:  
> 230)  
> at  
> org.elasticsearch.action.index.TransportIndexAction.shardOperationOnReplica (TransportIndexAction.java:  
> 187)  
> at  
> org.elasticsearch.action.support.replication.TransportShardReplicationOpera tionAction  
> $ReplicaOperationTransportHandler.messageReceived(TransportShardReplication Operat  
> ionAction.java:180)  
> at  
> org.elasticsearch.action.support.replication.TransportShardReplicationOpera tionAction  
> $ReplicaOperationTransportHandler.messageReceived(TransportShardReplication Operat  
> ionAction.java:173)  
> at org.elasticsearch.transport.netty.MessageChannelHandler  
> $3.run(MessageChannelHandler.java:195)  
> at java.util.concurrent.ThreadPoolExecutor  
> $Worker.runTask(ThreadPoolExecutor.java:886)  
> at java.util.concurrent.ThreadPoolExecutor  
> $Worker.run(ThreadPoolExecutor.java:908)  
> at java.lang.Thread.run(Thread.java:662)
> 
> Once again, the document is indexed on the node that I posted the data  
> to via REST, and missing on the other node. After letting my index  
> script throw data at it all day I came to find several failures like  
> this, and more sun.java2d.Disposer errors even though I am skipping  
> all images. Perhaps they're embedded in other document types? At  
> some point, the node I was using to index simply stopped acknowledging  
> posts, even for completely plain text data (this is a new symptom). I  
> had to completely recreate the index for it to accept data again. I  
> am, however, storing \_source now to aid in debugging so perhaps that  
> is related.
> 
> Is there something I am maybe missing in the plugin setup or something  
> I have to drop into the lib directory? I simply ran
> 
> ./plugin install mapper-attachments
> 
> in the bin directory as others had mentioned on the list. I tried  
> putting the tika-app jar into lib but that broke logging, at least, so  
> that doesn't appear to be the solution. Does anyone know what's going  
> on or what I am doing wrong?
> 
> Thanks!
> 
> Travis
> 
> On Jan 30, 3:13 pm, Travis Groth [tgr...@gmail.com](mailto:tgr...@gmail.com) wrote:
> 
> > Hi all,
> 
> > I'm looking at incorporating ES into our environment to allow us to  
> > search some large databases that simply don't do well with standard SQL  
> > queries to find things. First, I just want to say I am very impressed  
> > with ES so far. Great stuff.
> 
> > One of the big requirements I need to test out is indexing not just of  
> > plain text but of attachments - usually standard business docs like  
> > docx, html, pdf, xls, etc. After getting theplugininstalled I am  
> > seeing two issues. I can reproduce from a fresh index/jvm.
> 
> > 1. Image files (GIFs in particular in my testing) seem to cause issues  
> > in replication between nodes - it will index on the node it was posted  
> > to (or perhaps the primary node for the shard? My mental picture of the  
> > clustering side of things isn't entirely formed yet) and show up fine if  
> > I try to pull up that id, but if I try to retrieve it from the other  
> > node I'll get a 404 error. On the node I posted the data to I'll get  
> > this in the log:
> 
> > [2011-01-29 17:20:26,063][WARN][action.index] [Rafferty]  
> > Failed to perform indices/index/shard/index on replica Index Shard  
> > [tickets][2]  
> > org.elasticsearch.transport.RemoteTransportException: [Nathaniel  
> > Essex][inet[/10.140.20.168:9300]][indices/index/shard/index/replica]  
> > Caused by: java.lang.NoClassDefFoundError: Could not initialize class  
> > sun.java2d.Disposer  
> > at  
> > javax.imageio.stream.FileCacheImageInputStream.(FileCacheImageInputSt ream.java:94)  
> > at  
> > com.sun.imageio.spi.InputStreamImageInputStreamSpi.createInputStreamInstanc e(InputStreamImageInputStreamSpi.java:51)  
> > at javax.imageio.ImageIO.createImageInputStream(ImageIO.java:331)  
> > at org.apache.tika.parser.image.ImageParser.parse(ImageParser.java:72)  
> > at  
> > org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:197)  
> > at  
> > org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:197)  
> > at  
> > org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:137)  
> > at org.apache.tika.Tika.parseToString(Tika.java:290)  
> > at  
> > org.elasticsearch.index.mapper.xcontent.AttachmentMapper.parse(AttachmentMa pper.java:254)  
> > at  
> > org.elasticsearch.index.mapper.xcontent.ObjectMapper.serializeValue(ObjectM apper.java:377)  
> > at  
> > org.elasticsearch.index.mapper.xcontent.ObjectMapper.parse(ObjectMapper.jav a:295)  
> > at  
> > org.elasticsearch.index.mapper.xcontent.ObjectMapper.serializeObject(Object Mapper.java:316)  
> > at  
> > org.elasticsearch.index.mapper.xcontent.ObjectMapper.serializeArray(ObjectM apper.java:360)  
> > at  
> > org.elasticsearch.index.mapper.xcontent.ObjectMapper.parse(ObjectMapper.jav a:289)  
> > at  
> > org.elasticsearch.index.mapper.xcontent.ObjectMapper.serializeObject(Object Mapper.java:316)  
> > at  
> > org.elasticsearch.index.mapper.xcontent.ObjectMapper.serializeArray(ObjectM apper.java:360)  
> > at  
> > org.elasticsearch.index.mapper.xcontent.ObjectMapper.parse(ObjectMapper.jav a:289)  
> > at  
> > org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper.parse(XConte ntDocumentMapper.java:430)  
> > at  
> > org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper.parse(XConte ntDocumentMapper.java:368)  
> > at  
> > org.elasticsearch.index.shard.service.InternalIndexShard.prepareIndex(Inter nalIndexShard.java:230)  
> > at  
> > org.elasticsearch.action.index.TransportIndexAction.shardOperationOnReplica (TransportIndexAction.java:187)  
> > at  
> > org.elasticsearch.action.support.replication.TransportShardReplicationOpera tionAction$ReplicaOperationTransportHandler.messageReceived(TransportShardR eplicationOperationAction.java:180)  
> > at  
> > org.elasticsearch.action.support.replication.TransportShardReplicationOpera tionAction$ReplicaOperationTransportHandler.messageReceived(TransportShardR eplicationOperationAction.java:173)  
> > at  
> > org.elasticsearch.transport.netty.MessageChannelHandler$3.run(MessageChanne lHandler.java:195)  
> > at  
> > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.j ava:886)  
> > at  
> > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java: 908)  
> > at java.lang.Thread.run(Thread.java:662)  
> > [2011-01-29 17:20:26,063][WARN][cluster.action.shard] [Rafferty]  
> > sending failed shard for [tickets][2], node[I6QZH35TSTiYm0Ud5EIQ3A],  
> > [R], s[STARTED], reason [Failed to perform [indices/index/shard/index]  
> > on replica, message [RemoteTransportException[[Nathaniel  
> > Essex][inet[/10.140.20.168:9300]][indices/index/shard/index/replica]];  
> > nested: NoClassDefFoundError[Could not initialize class  
> > sun.java2d.Disposer]; ]]
> 
> > On the other node I'll see this:
> 
> > [2011-01-29 17:20:27,605][WARN][cluster.action.shard] [Nathaniel  
> > Essex] received shard failed for [tickets][2],
> 
> ...
> 
> read more »

---

<div class="post-metadata">

**Author:** ![kimchy](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/kimchy/32/44952_2.png) [@kimchy](https://discuss.elastic.co/u/kimchy)\
**Post date:** [February 2, 2011, 4:21pm UTC](https://discuss.elastic.co/t/attachment-indexing-breaks-shards-or-hangs-during-indexing/3842/4 "2011-02-02T16:21:22Z")

</div>

It seems like the Apache Tika module that is used to index attachments requires AWT, which requires, I guess more libs than what was indexed. Not to happy with the attachments module to be honest, need to work on it a bit and make it better.  
On Wednesday, February 2, 2011 at 6:04 PM, Travis wrote:

> After upgrading to 0.14.3 and turning on additional debug logging on  
> the index and gateway I found this started showing up in close  
> proximity to the other errors:
> 
> [2011-02-01 22:26:31,626][WARN][cluster.action.shard] [Scarlet  
> Witch] sending failed shard for [tickets][0], node[MbTXMpNLRn-  
> FKfUDILzFww], [R], s[STARTED], reason [Failed to perform [indices/  
> index/shard/index] on replica, message  
> [RemoteTransportException[[Fasaud][inet[/10.140.20.168:9300]][indices/  
> index/shard/index/replica]]; nested: UnsatisfiedLinkError[/usr/java/  
> jdk1.6.0\_23/jre/lib/  
> amd64/xawt/libmawt.so: libXtst.so.6: cannot open shared object file:  
> No such file or directory]; ]]
> 
> On a hunch, I installed libXtst and it would seem all the issues I was  
> seeing have cleared up.
> 
> Travis
> 
> On Jan 31, 11:15 pm, Travis [tgr...@gmail.com](mailto:tgr...@gmail.com) wrote:
> 
> > Does anyone have any insight to this?
> > 
> > I did a larger pass with some logging of what I tried to index and it  
> > looks like PDFs also have a similar problem with being unable to load  
> > one of the classes that tika uses:
> > 
> > [2011-02-01 03:55:05,325][WARN][action.index] [Logan]  
> > Failed to perform indices/index/shard/index on replica Index Shard  
> > [tickets][2]  
> > org.elasticsearch.transport.RemoteTransportException: [Strange,  
> > Stephen][inet[/10.140.20.168:9300]][indices/index/shard/index/replica]  
> > Caused by: java.lang.NoClassDefFoundError: Could not initialize class  
> > org.apache.pdfbox.pdmodel.PDPage  
> > at  
> > org.apache.pdfbox.pdmodel.PDPageNode.getAllKids(PDPageNode.java:201)  
> > at  
> > org.apache.pdfbox.pdmodel.PDPageNode.getAllKids(PDPageNode.java:207)  
> > at  
> > org.apache.pdfbox.pdmodel.PDPageNode.getAllKids(PDPageNode.java:207)  
> > at  
> > org.apache.pdfbox.pdmodel.PDPageNode.getAllKids(PDPageNode.java:175)  
> > at  
> > org.apache.pdfbox.pdmodel.PDDocumentCatalog.getAllPages(PDDocumentCatalog.j ava:  
> > 212)  
> > at  
> > org.apache.pdfbox.util.PDFTextStripper.writeText(PDFTextStripper.java:  
> > 321)  
> > at  
> > org.apache.pdfbox.util.PDFTextStripper.getText(PDFTextStripper.java:  
> > 241)  
> > at org.apache.tika.parser.pdf.PDF2XHTML.process(PDF2XHTML.java:  
> > 53)  
> > at org.apache.tika.parser.pdf.PDFParser.parse(PDFParser.java:  
> > 90)  
> > at  
> > org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:197)  
> > at  
> > org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:197)  
> > at  
> > org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:  
> > 137)  
> > at org.apache.tika.Tika.parseToString(Tika.java:290)  
> > at  
> > org.elasticsearch.index.mapper.xcontent.AttachmentMapper.parse(AttachmentMa pper.java:  
> > 254)  
> > at  
> > org.elasticsearch.index.mapper.xcontent.ObjectMapper.serializeValue(ObjectM apper.java:  
> > 377)  
> > at  
> > org.elasticsearch.index.mapper.xcontent.ObjectMapper.parse(ObjectMapper.jav a:  
> > 295)  
> > at  
> > org.elasticsearch.index.mapper.xcontent.ObjectMapper.serializeObject(Object Mapper.java:  
> > 316)  
> > at  
> > org.elasticsearch.index.mapper.xcontent.ObjectMapper.serializeArray(ObjectM apper.java:  
> > 360)  
> > at  
> > org.elasticsearch.index.mapper.xcontent.ObjectMapper.parse(ObjectMapper.jav a:  
> > 289)  
> > at  
> > org.elasticsearch.index.mapper.xcontent.ObjectMapper.serializeObject(Object Mapper.java:  
> > 316)  
> > at  
> > org.elasticsearch.index.mapper.xcontent.ObjectMapper.serializeArray(ObjectM apper.java:  
> > 360)  
> > at  
> > org.elasticsearch.index.mapper.xcontent.ObjectMapper.parse(ObjectMapper.jav a:  
> > 289)  
> > at  
> > org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper.parse(XConte ntDocumentMapper.java:  
> > 430)  
> > at  
> > org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper.parse(XConte ntDocumentMapper.java:  
> > 368)  
> > at  
> > org.elasticsearch.index.shard.service.InternalIndexShard.prepareIndex(Inter nalIndexShard.java:  
> > 230)  
> > at  
> > org.elasticsearch.action.index.TransportIndexAction.shardOperationOnReplica (TransportIndexAction.java:  
> > 187)  
> > at  
> > org.elasticsearch.action.support.replication.TransportShardReplicationOpera tionAction  
> > $ReplicaOperationTransportHandler.messageReceived(TransportShardReplication Operat  
> > ionAction.java:180)  
> > at  
> > org.elasticsearch.action.support.replication.TransportShardReplicationOpera tionAction  
> > $ReplicaOperationTransportHandler.messageReceived(TransportShardReplication Operat  
> > ionAction.java:173)  
> > at org.elasticsearch.transport.netty.MessageChannelHandler  
> > $3.run(MessageChannelHandler.java:195)  
> > at java.util.concurrent.ThreadPoolExecutor  
> > $Worker.runTask(ThreadPoolExecutor.java:886)  
> > at java.util.concurrent.ThreadPoolExecutor  
> > $Worker.run(ThreadPoolExecutor.java:908)  
> > at java.lang.Thread.run(Thread.java:662)
> > 
> > Once again, the document is indexed on the node that I posted the data  
> > to via REST, and missing on the other node. After letting my index  
> > script throw data at it all day I came to find several failures like  
> > this, and more sun.java2d.Disposer errors even though I am skipping  
> > all images. Perhaps they're embedded in other document types? At  
> > some point, the node I was using to index simply stopped acknowledging  
> > posts, even for completely plain text data (this is a new symptom). I  
> > had to completely recreate the index for it to accept data again. I  
> > am, however, storing \_source now to aid in debugging so perhaps that  
> > is related.
> > 
> > Is there something I am maybe missing in the plugin setup or something  
> > I have to drop into the lib directory? I simply ran
> > 
> > ./plugin install mapper-attachments
> > 
> > in the bin directory as others had mentioned on the list. I tried  
> > putting the tika-app jar into lib but that broke logging, at least, so  
> > that doesn't appear to be the solution. Does anyone know what's going  
> > on or what I am doing wrong?
> > 
> > Thanks!
> > 
> > Travis
> > 
> > On Jan 30, 3:13 pm, Travis Groth [tgr...@gmail.com](mailto:tgr...@gmail.com) wrote:
> > 
> > > Hi all,
> > 
> > > I'm looking at incorporating ES into our environment to allow us to  
> > > search some large databases that simply don't do well with standard SQL  
> > > queries to find things. First, I just want to say I am very impressed  
> > > with ES so far. Great stuff.
> > 
> > > One of the big requirements I need to test out is indexing not just of  
> > > plain text but of attachments - usually standard business docs like  
> > > docx, html, pdf, xls, etc. After getting theplugininstalled I am  
> > > seeing two issues. I can reproduce from a fresh index/jvm.
> > 
> > > 1. Image files (GIFs in particular in my testing) seem to cause issues  
> > > in replication between nodes - it will index on the node it was posted  
> > > to (or perhaps the primary node for the shard? My mental picture of the  
> > > clustering side of things isn't entirely formed yet) and show up fine if  
> > > I try to pull up that id, but if I try to retrieve it from the other  
> > > node I'll get a 404 error. On the node I posted the data to I'll get  
> > > this in the log:
> > 
> > > [2011-01-29 17:20:26,063][WARN][action.index] [Rafferty]  
> > > Failed to perform indices/index/shard/index on replica Index Shard  
> > > [tickets][2]  
> > > org.elasticsearch.transport.RemoteTransportException: [Nathaniel  
> > > Essex][inet[/10.140.20.168:9300]][indices/index/shard/index/replica]  
> > > Caused by: java.lang.NoClassDefFoundError: Could not initialize class  
> > > sun.java2d.Disposer  
> > > at  
> > > javax.imageio.stream.FileCacheImageInputStream.(FileCacheImageInputSt ream.java:94)  
> > > at  
> > > com.sun.imageio.spi.InputStreamImageInputStreamSpi.createInputStreamInstanc e(InputStreamImageInputStreamSpi.java:51)  
> > > at javax.imageio.ImageIO.createImageInputStream(ImageIO.java:331)  
> > > at org.apache.tika.parser.image.ImageParser.parse(ImageParser.java:72)  
> > > at  
> > > org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:197)  
> > > at  
> > > org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:197)  
> > > at  
> > > org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:137)  
> > > at org.apache.tika.Tika.parseToString(Tika.java:290)  
> > > at  
> > > org.elasticsearch.index.mapper.xcontent.AttachmentMapper.parse(AttachmentMa pper.java:254)  
> > > at  
> > > org.elasticsearch.index.mapper.xcontent.ObjectMapper.serializeValue(ObjectM apper.java:377)  
> > > at  
> > > org.elasticsearch.index.mapper.xcontent.ObjectMapper.parse(ObjectMapper.jav a:295)  
> > > at  
> > > org.elasticsearch.index.mapper.xcontent.ObjectMapper.serializeObject(Object Mapper.java:316)  
> > > at  
> > > org.elasticsearch.index.mapper.xcontent.ObjectMapper.serializeArray(ObjectM apper.java:360)  
> > > at  
> > > org.elasticsearch.index.mapper.xcontent.ObjectMapper.parse(ObjectMapper.jav a:289)  
> > > at  
> > > org.elasticsearch.index.mapper.xcontent.ObjectMapper.serializeObject(Object Mapper.java:316)  
> > > at  
> > > org.elasticsearch.index.mapper.xcontent.ObjectMapper.serializeArray(ObjectM apper.java:360)  
> > > at  
> > > org.elasticsearch.index.mapper.xcontent.ObjectMapper.parse(ObjectMapper.jav a:289)  
> > > at  
> > > org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper.parse(XConte ntDocumentMapper.java:430)  
> > > at  
> > > org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper.parse(XConte ntDocumentMapper.java:368)  
> > > at  
> > > org.elasticsearch.index.shard.service.InternalIndexShard.prepareIndex(Inter nalIndexShard.java:230)  
> > > at  
> > > org.elasticsearch.action.index.TransportIndexAction.shardOperationOnReplica (TransportIndexAction.java:187)  
> > > at  
> > > org.elasticsearch.action.support.replication.TransportShardReplicationOpera tionAction$ReplicaOperationTransportHandler.messageReceived(TransportShardR eplicationOperationAction.java:180)  
> > > at  
> > > org.elasticsearch.action.support.replication.TransportShardReplicationOpera tionAction$ReplicaOperationTransportHandler.messageReceived(TransportShardR eplicationOperationAction.java:173)  
> > > at  
> > > org.elasticsearch.transport.netty.MessageChannelHandler$3.run(MessageChanne lHandler.java:195)  
> > > at  
> > > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.j ava:886)  
> > > at  
> > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java: 908)  
> > > at java.lang.Thread.run(Thread.java:662)  
> > > [2011-01-29 17:20:26,063][WARN][cluster.action.shard] [Rafferty]  
> > > sending failed shard for [tickets][2], node[I6QZH35TSTiYm0Ud5EIQ3A],  
> > > [R], s[STARTED], reason [Failed to perform [indices/index/shard/index]  
> > > on replica, message [RemoteTransportException[[Nathaniel  
> > > Essex][inet[/10.140.20.168:9300]][indices/index/shard/index/replica]];  
> > > nested: NoClassDefFoundError[Could not initialize class  
> > > sun.java2d.Disposer]; ]]
> > 
> > > On the other node I'll see this:
> > 
> > > [2011-01-29 17:20:27,605][WARN][cluster.action.shard] [Nathaniel  
> > > Essex] received shard failed for [tickets][2],
> > 
> > ...
> > 
> > read more Â»

---

<div class="post-metadata">

**Author:** ![Travis\_Groth](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/travis_groth/32/3273_2.png) [@Travis\_Groth](https://discuss.elastic.co/u/Travis_Groth)\
**Post date:** [February 3, 2011, 2:17am UTC](https://discuss.elastic.co/t/attachment-indexing-breaks-shards-or-hangs-during-indexing/3842/5 "2011-02-03T02:17:12Z")

</div>

```
To be fair, I don't think we get away without that library on any of
the application servers here anyway.Â I'm surprised I didn't trip
over it earlier.Â This happened to be a fresh barebones VM.

The attachments mapper may not be ideal but my brief testing turned
up OK results.Â I've seen some exceptions indexing ODT and a few
PDFs but the stack traces are definitely straight from Tika's
parser.Â Most of the time it seems to be working just fine which is
good enough for my purposes.Â Probably 98% of our use cases are on
plain text anyway.

Once again, great stuff.Â Looking forward to 0.15 proper.Â  

On 02/02/2011 11:21 AM, Shay Banon wrote:
<blockquote cite="mid:B1EA4BA019C4420798113F5062F75598@elasticsearch.com" type="cite">It seems like the Apache Tika module that is used
        to index attachments requires AWT, which requires, I guess
        more libs than what was indexed. Not to happy with the
        attachments module to be honest, need to work on it a bit
        and make it better.

```

On Wednesday, February 2, 2011 at 6:04 PM, Travis wrote:

> After upgrading to 0.14.3 and turning on additional debug logging on
> 
> ```
> the index and gateway I found this started showing up
> in close
> 
> proximity to the other errors:
> 
> [2011-02-01 22:26:31,626][WARN][cluster.action.shard
> ] [Scarlet
> 
> Witch] sending failed shard for [tickets][0],
> node[MbTXMpNLRn-
> 
> FKfUDILzFww], [R], s[STARTED], reason [Failed to
> perform [indices/
> 
> index/shard/index] on replica, message
> 
> ```
> 
> [RemoteTransportException[[Fasaud][inet[/10.140.20.168:9300]][indices/
> 
> ```
> index/shard/index/replica]]; nested:
> UnsatisfiedLinkError[/usr/java/
> 
> jdk1.6.0_23/jre/lib/
> 
> amd64/xawt/libmawt.so: libXtst.so.6: cannot open
> shared object file:
> 
> No such file or directory]; ]]
> 
> On a hunch, I installed libXtst and it would seem all
> the issues I was
> 
> seeing have cleared up.
> 
> Travis
> 
> On Jan 31, 11:15Â pm, Travis &lt;tgr...@<a moz-do-not-send="true" href="http://gmail.com">gmail.com</a>&gt;
> wrote:
> 
> ```
> 
> > Does anyone have any insight to this?
> > 
> > ```
> > I did a larger pass with some logging of what I
> > tried to index and it
> > 
> > looks like PDFs also have a similar problem with
> > being unable to load
> > 
> > one of the classes that tika uses:
> > 
> > [2011-02-01 03:55:05,325][WARN][action.index Â Â 
> > Â Â Â Â ] [Logan]
> > 
> > Failed to perform indices/index/shard/index on
> > replica Index Shard
> > 
> > [tickets][2]
> > 
> > org.elasticsearch.transport.RemoteTransportException:
> > [Strange,
> > 
> > ```
> > 
> > Stephen][inet[/10.140.20.168:9300]][indices/index/shard/index/replica]
> > 
> > ```
> > Caused by: java.lang.NoClassDefFoundError: Could
> > not initialize class
> > 
> > org.apache.pdfbox.pdmodel.PDPage
> > 
> > Â Â Â Â at
> > 
> > ```
> > 
> > org.apache.pdfbox.pdmodel.PDPageNode.getAllKids(PDPageNode.java:201)
> > 
> > ```
> > Â Â Â Â at
> > 
> > ```
> > 
> > org.apache.pdfbox.pdmodel.PDPageNode.getAllKids(PDPageNode.java:207)
> > 
> > ```
> > Â Â Â Â at
> > 
> > ```
> > 
> > org.apache.pdfbox.pdmodel.PDPageNode.getAllKids(PDPageNode.java:207)
> > 
> > ```
> > Â Â Â Â at
> > 
> > ```
> > 
> > org.apache.pdfbox.pdmodel.PDPageNode.getAllKids(PDPageNode.java:175)
> > 
> > ```
> > Â Â Â Â at
> > 
> > org.apache.pdfbox.pdmodel.PDDocumentCatalog.getAllPages(PDDocumentCatalog.j
> > ava:
> > 
> > 212)
> > 
> > Â Â Â Â at
> > 
> > ```
> > 
> > org.apache.pdfbox.util.PDFTextStripper.writeText(PDFTextStripper.java:
> > 
> > ```
> > 321)
> > 
> > Â Â Â Â at
> > 
> > ```
> > 
> > org.apache.pdfbox.util.PDFTextStripper.getText(PDFTextStripper.java:
> > 
> > ```
> > 241)
> > 
> > Â Â Â Â at
> > org.apache.tika.parser.pdf.PDF2XHTML.process(PDF2XHTML.java:
> > 
> > 53)
> > 
> > Â Â Â Â at
> > org.apache.tika.parser.pdf.PDFParser.parse(PDFParser.java:
> > 
> > 90)
> > 
> > Â Â Â Â at
> > 
> > ```
> > 
> > org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:197)
> > 
> > ```
> > Â Â Â Â at
> > 
> > ```
> > 
> > org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:197)
> > 
> > ```
> > Â Â Â Â at
> > 
> > ```
> > 
> > org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:
> > 
> > ```
> > 137)
> > 
> > Â Â Â Â at
> > org.apache.tika.Tika.parseToString(Tika.java:290)
> > 
> > Â Â Â Â at
> > 
> > org.elasticsearch.index.mapper.xcontent.AttachmentMapper.parse(AttachmentMa
> > pper.java:
> > 
> > 254)
> > 
> > Â Â Â Â at
> > 
> > org.elasticsearch.index.mapper.xcontent.ObjectMapper.serializeValue(ObjectM
> > apper.java:
> > 
> > 377)
> > 
> > Â Â Â Â at
> > 
> > org.elasticsearch.index.mapper.xcontent.ObjectMapper.parse(ObjectMapper.jav
> > a:
> > 
> > 295)
> > 
> > Â Â Â Â at
> > 
> > org.elasticsearch.index.mapper.xcontent.ObjectMapper.serializeObject(Object
> > Mapper.java:
> > 
> > 316)
> > 
> > Â Â Â Â at
> > 
> > org.elasticsearch.index.mapper.xcontent.ObjectMapper.serializeArray(ObjectM
> > apper.java:
> > 
> > 360)
> > 
> > Â Â Â Â at
> > 
> > org.elasticsearch.index.mapper.xcontent.ObjectMapper.parse(ObjectMapper.jav
> > a:
> > 
> > 289)
> > 
> > Â Â Â Â at
> > 
> > org.elasticsearch.index.mapper.xcontent.ObjectMapper.serializeObject(Object
> > Mapper.java:
> > 
> > 316)
> > 
> > Â Â Â Â at
> > 
> > org.elasticsearch.index.mapper.xcontent.ObjectMapper.serializeArray(ObjectM
> > apper.java:
> > 
> > 360)
> > 
> > Â Â Â Â at
> > 
> > org.elasticsearch.index.mapper.xcontent.ObjectMapper.parse(ObjectMapper.jav
> > a:
> > 
> > 289)
> > 
> > Â Â Â Â at
> > 
> > org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper.parse(XConte
> > ntDocumentMapper.java:
> > 
> > 430)
> > 
> > Â Â Â Â at
> > 
> > org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper.parse(XConte
> > ntDocumentMapper.java:
> > 
> > 368)
> > 
> > Â Â Â Â at
> > 
> > org.elasticsearch.index.shard.service.InternalIndexShard.prepareIndex(Inter
> > nalIndexShard.java:
> > 
> > 230)
> > 
> > Â Â Â Â at
> > 
> > org.elasticsearch.action.index.TransportIndexAction.shardOperationOnReplica
> > (TransportIndexAction.java:
> > 
> > 187)
> > 
> > Â Â Â Â at
> > 
> > org.elasticsearch.action.support.replication.TransportShardReplicationOpera
> > tionAction
> > 
> > $ReplicaOperationTransportHandler.messageReceived(TransportShardReplication
> > Operat
> > 
> > ionAction.java:180)
> > 
> > Â Â Â Â at
> > 
> > org.elasticsearch.action.support.replication.TransportShardReplicationOpera
> > tionAction
> > 
> > $ReplicaOperationTransportHandler.messageReceived(TransportShardReplication
> > Operat
> > 
> > ionAction.java:173)
> > 
> > Â Â Â Â at
> > org.elasticsearch.transport.netty.MessageChannelHandler
> > 
> > $3.run(MessageChannelHandler.java:195)
> > 
> > Â Â Â Â at java.util.concurrent.ThreadPoolExecutor
> > 
> > $Worker.runTask(ThreadPoolExecutor.java:886)
> > 
> > Â Â Â Â at java.util.concurrent.ThreadPoolExecutor
> > 
> > $Worker.run(ThreadPoolExecutor.java:908)
> > 
> > Â Â Â Â at java.lang.Thread.run(Thread.java:662)
> > 
> > Once again, the document is indexed on the node
> > that I posted the data
> > 
> > to via REST, and missing on the other node. Â After
> > letting my index
> > 
> > script throw data at it all day I came to find
> > several failures like
> > 
> > this, and more Â sun.java2d.Disposer errors even
> > though I am skipping
> > 
> > all images. Â Perhaps they're embedded in other
> > document types? Â At
> > 
> > some point, the node I was using to index simply
> > stopped acknowledging
> > 
> > posts, even for completely plain text data (this
> > is a new symptom). Â I
> > 
> > had to completely recreate the index for it to
> > accept data again. Â I
> > 
> > am, however, storing _source now to aid in
> > debugging so perhaps that
> > 
> > is related.
> > 
> > Is there something I am maybe missing in the
> > plugin setup or something
> > 
> > I have to drop into the lib directory? Â I simply
> > ran
> > 
> > ./plugin install mapper-attachments
> > 
> > in the bin directory as others had mentioned on
> > the list. Â I tried
> > 
> > putting the tika-app jar into lib but that broke
> > logging, at least, so
> > 
> > that doesn't appear to be the solution. Â Does
> > anyone know what's going
> > 
> > on or what I am doing wrong?
> > 
> > Thanks!
> > 
> > Travis
> > 
> > On Jan 30, 3:13Â pm, Travis Groth &lt;tgr...@<a moz-do-not-send="true" href="http://gmail.com">gmail.com</a>&gt;
> > wrote:
> > 
> > ```
> > 
> > > Hi all,
> > 
> > > I'm looking at incorporating ES into our environment to allow us to
> > > 
> > > ```
> > > search some large databases that simply don't
> > > do well with standard SQL
> > > 
> > > queries to find things. Â First, I just want to
> > > say I am very impressed
> > > 
> > > with ES so far. Â Great stuff.
> > > 
> > > ```
> > 
> > > One of the big requirements I need to test out is indexing not just of
> > > 
> > > ```
> > > plain text but of attachments - usually
> > > standard business docs like
> > > 
> > > docx, html, pdf, xls, etc. Â After getting
> > > theplugininstalled I am
> > > 
> > > seeing two issues. Â I can reproduce from a
> > > fresh index/jvm.
> > > 
> > > ```
> > 
> > > 1) Â Image files (GIFs in particular in my testing) seem to cause issues
> > > 
> > > ```
> > > in replication between nodes - it will index
> > > on the node it was posted
> > > 
> > > to (or perhaps the primary node for the shard?
> > > Â My mental picture of the
> > > 
> > > clustering side of things isn't entirely
> > > formed yet) and show up fine if
> > > 
> > > I try to pull up that id, but if I try to
> > > retrieve it from the other
> > > 
> > > node I'll get a 404 error. Â On the node I
> > > posted the data to I'll get
> > > 
> > > this in the log:
> > > 
> > > ```
> > 
> > > [2011-01-29 17:20:26,063][WARN][action.index Â Â Â Â Â Â] [Rafferty]
> > > 
> > > ```
> > > Failed to perform indices/index/shard/index on
> > > replica Index Shard
> > > 
> > > [tickets][2]
> > > 
> > > org.elasticsearch.transport.RemoteTransportException:
> > > [Nathaniel
> > > 
> > > ```
> > > 
> > > Essex][inet[/10.140.20.168:9300]][indices/index/shard/index/replica]
> > > 
> > > ```
> > > Caused by: java.lang.NoClassDefFoundError:
> > > Could not initialize class
> > > 
> > > sun.java2d.Disposer
> > > 
> > > Â Â Â at
> > > 
> > > javax.imageio.stream.FileCacheImageInputStream.&lt;init&gt;(FileCacheImageInputSt
> > > ream.java:94)
> > > 
> > > Â Â Â at
> > > 
> > > com.sun.imageio.spi.InputStreamImageInputStreamSpi.createInputStreamInstanc
> > > e(InputStreamImageInputStreamSpi.java:51)
> > > 
> > > Â Â Â at
> > > javax.imageio.ImageIO.createImageInputStream(ImageIO.java:331)
> > > 
> > > Â Â Â at
> > > org.apache.tika.parser.image.ImageParser.parse(ImageParser.java:72)
> > > 
> > > Â Â Â at
> > > 
> > > ```
> > > 
> > > org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:197)
> > > 
> > > ```
> > > Â Â Â at
> > > 
> > > ```
> > > 
> > > org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:197)
> > > 
> > > ```
> > > Â Â Â at
> > > 
> > > ```
> > > 
> > > org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:137)
> > > 
> > > ```
> > > Â Â Â at
> > > org.apache.tika.Tika.parseToString(Tika.java:290)
> > > 
> > > Â Â Â at
> > > 
> > > org.elasticsearch.index.mapper.xcontent.AttachmentMapper.parse(AttachmentMa
> > > pper.java:254)
> > > 
> > > Â Â Â at
> > > 
> > > org.elasticsearch.index.mapper.xcontent.ObjectMapper.serializeValue(ObjectM
> > > apper.java:377)
> > > 
> > > Â Â Â at
> > > 
> > > org.elasticsearch.index.mapper.xcontent.ObjectMapper.parse(ObjectMapper.jav
> > > a:295)
> > > 
> > > Â Â Â at
> > > 
> > > org.elasticsearch.index.mapper.xcontent.ObjectMapper.serializeObject(Object
> > > Mapper.java:316)
> > > 
> > > Â Â Â at
> > > 
> > > org.elasticsearch.index.mapper.xcontent.ObjectMapper.serializeArray(ObjectM
> > > apper.java:360)
> > > 
> > > Â Â Â at
> > > 
> > > org.elasticsearch.index.mapper.xcontent.ObjectMapper.parse(ObjectMapper.jav
> > > a:289)
> > > 
> > > Â Â Â at
> > > 
> > > org.elasticsearch.index.mapper.xcontent.ObjectMapper.serializeObject(Object
> > > Mapper.java:316)
> > > 
> > > Â Â Â at
> > > 
> > > org.elasticsearch.index.mapper.xcontent.ObjectMapper.serializeArray(ObjectM
> > > apper.java:360)
> > > 
> > > Â Â Â at
> > > 
> > > org.elasticsearch.index.mapper.xcontent.ObjectMapper.parse(ObjectMapper.jav
> > > a:289)
> > > 
> > > Â Â Â at
> > > 
> > > org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper.parse(XConte
> > > ntDocumentMapper.java:430)
> > > 
> > > Â Â Â at
> > > 
> > > org.elasticsearch.index.mapper.xcontent.XContentDocumentMapper.parse(XConte
> > > ntDocumentMapper.java:368)
> > > 
> > > Â Â Â at
> > > 
> > > org.elasticsearch.index.shard.service.InternalIndexShard.prepareIndex(Inter
> > > nalIndexShard.java:230)
> > > 
> > > Â Â Â at
> > > 
> > > org.elasticsearch.action.index.TransportIndexAction.shardOperationOnReplica
> > > (TransportIndexAction.java:187)
> > > 
> > > Â Â Â at
> > > 
> > > org.elasticsearch.action.support.replication.TransportShardReplicationOpera
> > > tionAction$ReplicaOperationTransportHandler.messageReceived(TransportShardR
> > > eplicationOperationAction.java:180)
> > > 
> > > Â Â Â at
> > > 
> > > org.elasticsearch.action.support.replication.TransportShardReplicationOpera
> > > tionAction$ReplicaOperationTransportHandler.messageReceived(TransportShardR
> > > eplicationOperationAction.java:173)
> > > 
> > > Â Â Â at
> > > 
> > > org.elasticsearch.transport.netty.MessageChannelHandler$3.run(MessageChanne
> > > lHandler.java:195)
> > > 
> > > Â Â Â at
> > > 
> > > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.j
> > > ava:886)
> > > 
> > > Â Â Â at
> > > 
> > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:
> > > 908)
> > > 
> > > Â Â Â at java.lang.Thread.run(Thread.java:662)
> > > 
> > > [2011-01-29 17:20:26,063][WARN
> > > ][cluster.action.shard Â Â] [Rafferty]
> > > 
> > > sending failed shard for [tickets][2],
> > > node[I6QZH35TSTiYm0Ud5EIQ3A],
> > > 
> > > [R], s[STARTED], reason [Failed to perform
> > > [indices/index/shard/index]
> > > 
> > > on replica, message
> > > [RemoteTransportException[[Nathaniel
> > > 
> > > ```
> > > 
> > > Essex][inet[/10.140.20.168:9300]][indices/index/shard/index/replica]];
> > > 
> > > ```
> > > nested: NoClassDefFoundError[Could not
> > > initialize class
> > > 
> > > sun.java2d.Disposer]; ]]
> > > 
> > > ```
> > 
> > > On the other node I'll see this:
> > 
> > > [2011-01-29 17:20:27,605][WARN][cluster.action.shard Â Â] [Nathaniel
> > > 
> > > ```
> > > Essex] received shard failed for [tickets][2],
> > > 
> > > ```
> > 
> > ```
> > ...
> > 
> > read more Â»
> > 
> > ```

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [July 6, 2017, 4:12am UTC](https://discuss.elastic.co/t/attachment-indexing-breaks-shards-or-hangs-during-indexing/3842/6 "2017-07-06T04:12:48Z")

</div>


