Skip to content

An ingested ETD on a search results page causes crash #583

@kerchner

Description

@kerchner

As of 15-April-2025, requesting ETD result #256 consistently results in the rails error page.

https://scholarspace.library.gwu.edu/catalog?f%5Bhas_model_ssim%5D%5B%5D=GwEtd&locale=en&page=256&per_page=1

Need to go check the logs.

The item is this:
https://scholarspace.library.gwu.edu/concern/gw_etds/2801ph32k
it is accessible via the direct link, but via catalog/search results (for example, search on Belesis), it causes a crash.

What's unusual about this work is that some text in the Abstract is being (correctly) interpreted and formatted as URLs; however, this is "choking" the catalog results view. I tested this by substituting a very simple abstract, and observing that the catalog search result works. I confirmed that it breaks whether or not the http(s):// is included; the landing page formats either one as a link. Replacing the dots with %2E renders the abstrct with %2E rather than dots, so this is not a good solution either.

I have temporarily replaced the .s in the URLs with -s to prevent crashing.

Image

The error in the Fedora logs looks like this:

fedora-1      | INFO 12:12:32.225 (FedoraLdp) HEAD for: prod/jh/34/3s/76/jh343s762
fedora-1      | INFO 12:12:32.230 (FedoraLdp) GET resource 'prod/jh/34/3s/76/jh343s762'
fedora-1      | INFO 12:12:32.273 (FedoraLdp) HEAD for: prod/jh/34/3s/76/jh343s762/files/61d307e0-e596-4855-b30c-852eb1192155
fedora-1      | INFO 12:12:32.276 (FedoraLdp) GET resource 'prod/jh/34/3s/76/jh343s762/files/61d307e0-e596-4855-b30c-852eb1192155/fcr:metadata'
fedora-1      | INFO 12:12:32.345 (FedoraLdp) GET resource 'prod/jh/34/3s/76/jh343s762/files/61d307e0-e596-4855-b30c-852eb1192155'
fedora-1      | Apr 16, 2025 12:12:32 PM org.glassfish.jersey.server.ServerRuntime$Responder writeResponse
fedora-1      | SEVERE: An I/O error has occurred while writing a response message entity to the container output stream.
fedora-1      | org.glassfish.jersey.server.internal.process.MappableException: org.eclipse.jetty.io.EofException
fedora-1      | 	at org.glassfish.jersey.server.internal.MappableExceptionWrapperInterceptor.aroundWriteTo(MappableExceptionWrapperInterceptor.java:92)
fedora-1      | 	at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:162)
fedora-1      | 	at org.glassfish.jersey.message.internal.MessageBodyFactory.writeTo(MessageBodyFactory.java:1130)
fedora-1      | 	at org.glassfish.jersey.server.ServerRuntime$Responder.writeResponse(ServerRuntime.java:711)
fedora-1      | 	at org.glassfish.jersey.server.ServerRuntime$Responder.processResponse(ServerRuntime.java:444)
fedora-1      | 	at org.glassfish.jersey.server.ServerRuntime$Responder.process(ServerRuntime.java:434)
fedora-1      | 	at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:329)
fedora-1      | 	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
fedora-1      | 	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
fedora-1      | 	at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
fedora-1      | 	at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
fedora-1      | 	at org.glassfish.jersey.internal.Errors.process(Errors.java:267)
fedora-1      | 	at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317)
fedora-1      | 	at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305)
fedora-1      | 	at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154)
fedora-1      | 	at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:473)
fedora-1      | 	at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427)
fedora-1      | 	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388)
fedora-1      | 	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341)
fedora-1      | 	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228)
fedora-1      | 	at org.eclipse.jetty.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1450)
fedora-1      | 	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799)
fedora-1      | 	at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1631)
fedora-1      | 	at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:228)
fedora-1      | 	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
fedora-1      | 	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
fedora-1      | 	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548)
fedora-1      | 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
fedora-1      | 	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:600)
fedora-1      | 	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
fedora-1      | 	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
fedora-1      | 	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)
fedora-1      | 	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
fedora-1      | 	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1434)
fedora-1      | 	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
fedora-1      | 	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)
fedora-1      | 	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)
fedora-1      | 	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
fedora-1      | 	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1349)
fedora-1      | 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
fedora-1      | 	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:191)
fedora-1      | 	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146)
fedora-1      | 	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
fedora-1      | 	at org.eclipse.jetty.server.Server.handle(Server.java:516)
fedora-1      | 	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:400)
fedora-1      | 	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:645)
fedora-1      | 	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:392)
fedora-1      | 	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)
fedora-1      | 	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
fedora-1      | 	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
fedora-1      | 	at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
fedora-1      | 	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338)
fedora-1      | 	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315)
fedora-1      | 	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173)
fedora-1      | 	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
fedora-1      | 	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409)
fedora-1      | 	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
fedora-1      | 	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
fedora-1      | 	at java.lang.Thread.run(Thread.java:748)
fedora-1      | Caused by: org.eclipse.jetty.io.EofException
fedora-1      | 	at org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:279)
fedora-1      | 	at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:422)
fedora-1      | 	at org.eclipse.jetty.io.WriteFlusher.completeWrite(WriteFlusher.java:378)
fedora-1      | 	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:119)
fedora-1      | 	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338)
fedora-1      | 	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:300)
fedora-1      | 	... 6 more
fedora-1      | Caused by: java.io.IOException: Connection reset by peer
fedora-1      | 	at sun.nio.ch.FileDispatcherImpl.writev0(Native Method)
fedora-1      | 	at sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:51)
fedora-1      | 	at sun.nio.ch.IOUtil.write(IOUtil.java:148)
fedora-1      | 	at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:503)
fedora-1      | 	at java.nio.channels.SocketChannel.write(SocketChannel.java:502)
fedora-1      | 	at org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:273)
fedora-1      | 	... 11 more
fedora-1      | 
fedora-1      | INFO 12:12:32.693 (FedoraLdp) GET resource 'prod/jh/34/3s/76/jh343s762/files/61d307e0-e596-4855-b30c-852eb1192155'
fedora-1      | Apr 16, 2025 12:12:32 PM org.glassfish.jersey.server.ServerRuntime$Responder writeResponse
fedora-1      | SEVERE: An I/O error has occurred while writing a response message entity to the container output stream.
fedora-1      | org.glassfish.jersey.server.internal.process.MappableException: org.eclipse.jetty.io.EofException
fedora-1      | 	at org.glassfish.jersey.server.internal.MappableExceptionWrapperInterceptor.aroundWriteTo(MappableExceptionWrapperInterceptor.java:92)
fedora-1      | 	at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:162)
fedora-1      | 	at org.glassfish.jersey.message.internal.MessageBodyFactory.writeTo(MessageBodyFactory.java:1130)
fedora-1      | 	at org.glassfish.jersey.server.ServerRuntime$Responder.writeResponse(ServerRuntime.java:711)
fedora-1      | 	at org.glassfish.jersey.server.ServerRuntime$Responder.processResponse(ServerRuntime.java:444)
fedora-1      | 	at org.glassfish.jersey.server.ServerRuntime$Responder.process(ServerRuntime.java:434)
fedora-1      | 	at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:329)
fedora-1      | 	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
fedora-1      | 	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
fedora-1      | 	at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
fedora-1      | 	at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
fedora-1      | 	at org.glassfish.jersey.internal.Errors.process(Errors.java:267)
fedora-1      | 	at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317)
fedora-1      | 	at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305)
fedora-1      | 	at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154)
fedora-1      | 	at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:473)
fedora-1      | 	at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427)
fedora-1      | 	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388)
fedora-1      | 	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341)
fedora-1      | 	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228)
fedora-1      | 	at org.eclipse.jetty.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1450)
fedora-1      | 	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799)
fedora-1      | 	at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1631)
fedora-1      | 	at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:228)
fedora-1      | 	at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
fedora-1      | 	at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
fedora-1      | 	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548)
fedora-1      | 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
fedora-1      | 	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:600)
fedora-1      | 	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
fedora-1      | 	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
fedora-1      | 	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)
fedora-1      | 	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
fedora-1      | 	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1434)
fedora-1      | 	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
fedora-1      | 	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)
fedora-1      | 	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)
fedora-1      | 	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
fedora-1      | 	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1349)
fedora-1      | 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
fedora-1      | 	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:191)
fedora-1      | 	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146)
fedora-1      | 	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
fedora-1      | 	at org.eclipse.jetty.server.Server.handle(Server.java:516)
fedora-1      | 	at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:400)
fedora-1      | 	at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:645)
fedora-1      | 	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:392)
fedora-1      | 	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)
fedora-1      | 	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
fedora-1      | 	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
fedora-1      | 	at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
fedora-1      | 	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338)
fedora-1      | 	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315)
fedora-1      | 	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173)
fedora-1      | 	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
fedora-1      | 	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409)
fedora-1      | 	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
fedora-1      | 	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
fedora-1      | 	at java.lang.Thread.run(Thread.java:748)
fedora-1      | Caused by: org.eclipse.jetty.io.EofException
fedora-1      | 	at org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:279)
fedora-1      | 	at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:422)
fedora-1      | 	at org.eclipse.jetty.io.WriteFlusher.completeWrite(WriteFlusher.java:378)
fedora-1      | 	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:119)
fedora-1      | 	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338)
fedora-1      | 	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:300)
fedora-1      | 	... 6 more
fedora-1      | Caused by: java.io.IOException: Connection reset by peer
fedora-1      | 	at sun.nio.ch.FileDispatcherImpl.writev0(Native Method)
fedora-1      | 	at sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:51)
fedora-1      | 	at sun.nio.ch.IOUtil.write(IOUtil.java:148)
fedora-1      | 	at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:503)
fedora-1      | 	at java.nio.channels.SocketChannel.write(SocketChannel.java:502)
fedora-1      | 	at org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:273)
fedora-1      | 	... 11 more

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions