CorruptedFrameException: на множественный запрос gremlin addV () в удаленном клиенте - PullRequest
0 голосов
/ 07 ноября 2018

Набор инструментов: Сервер БД : TinkerPop / TinkerGraph v 3.3.3 (Stanalone - с использованием conf / gremlin-server.yaml) ( channelizer : org.apache.tinkerpop.gremlin.server.channel. WsAndHttpChannelizer)

Клиент : клиент Gremlin из Java.

Проблема : при многократном вызове client.submitAsync () я получаю исключение. Количество повторений до появления исключения отличается, если я изменю содержимое запроса. Это указывает на то, что в конфигурации на стороне клиента нужно что-то делать!

2018-11-07 09: 57: 59.418 ОШИБКА 20672 --- [n-driver-loop-2] o.a.t.g.d.Handler $ GremlinResponseHandler: Не удалось обработать ответ io.netty.handler.codec.CorruptedFrameException: максимальная длина кадра 65536 была превышена. в io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.protocolViolation (WebSocket08FrameDecoder.java:412) ~ [netty-all-4.1.24.Final.jar: 4.1.24.Final] в io.netty.handler.codec.http.websocketx.WebSocket08FrameDecoder.decode (WebSocket08FrameDecoder.java:277) ~ [netty-all-4.1.24.Final.jar: 4.1.24.Final] в io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection (ByteToMessageDecoder.java:489) ~ [netty-all-4.1.24.Final.jar: 4.1.24.Final] в io.netty.handler.codec.ByteToMessageDecoder.callDecode (ByteToMessageDecoder.java:428) ~ [netty-all-4.1.24.Final.jar: 4.1.24.Final] в io.netty.handler.codec.ByteToMessageDecoder.channelRead (ByteToMessageDecoder.java:265) ~ [netty-all-4.1.24.Final.jar: 4.1.24.Final] в io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead (AbstractChannelHandlerContext.java:362) [netty-all-4.1.24.Final.jar: 4.1.24.Final] в io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead (AbstractChannelHandlerContext.java:348) [netty-all-4.1.24.Final.jar: 4.1.24.Final] в io.netty.channel.AbstractChannelHandlerContext.fireChannelRead (AbstractChannelHandlerContext.java:340) [netty-all-4.1.24.Final.jar: 4.1.24.Final] в io.netty.channel.DefaultChannelPipeline $ HeadContext.channelRead (DefaultChannelPipeline.java:1434) [netty-all-4.1.24.Final.jar: 4.1.24.Final] в io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead (AbstractChannelHandlerContext.java:362) [netty-all-4.1.24.Final.jar: 4.1.24.Final] в io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead (AbstractChannelHandlerContext.java:348) [netty-all-4.1.24.Final.jar: 4.1.24.Final] в io.netty.channel.DefaultChannelPipeline.fireChannelRead (DefaultChannelPipeline.java:965) [netty-all-4.1.24.Final.jar: 4.1.24.Final] в io.netty.channel.nio.AbstractNioByteChannel $ NioByteUnsafe.read (AbstractNioByteChannel.java:163) [netty-all-4.1.24.Final.jar: 4.1.24.Final] в io.netty.channel.nio.NioEventLoop.processSelectedKey (NioEventLoop.java:645) [netty-all-4.1.24.Final.jar: 4.1.24.Final] в io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized (NioEventLoop.java:580) [netty-all-4.1.24.Final.jar: 4.1.24.Final] в io.netty.channel.nio.NioEventLoop.processSelectedKeys (NioEventLoop.java:497) [netty-all-4.1.24.Final.jar: 4.1.24.Final] в io.netty.channel.nio.NioEventLoop.run (NioEventLoop.java:459) [netty-all-4.1.24.Final.jar: 4.1.24.Final] на io.netty.util.concurrent.SingleThreadEventExecutor $ 5.run (SingleThreadEventExecutor.java:884) [netty-all-4.1.24.Final.jar: 4.1.24.Final] at java.lang.Thread.run (Thread.java:745) [na: 1.8.0_121]

Ответы [ 2 ]

0 голосов
/ 07 ноября 2018

Проблема была не в addV (), а в одном поиске, чтобы вернуть все вершины. Перед каждым добавлением я выполнял поиск, чтобы получить множество вершин - применить некоторую логику. ТАК КАК каждый addV () увеличивал количество вершин, после определенного времени поиска (g.V () ...) содержание ответа увеличивалось. Пока этот вопрос можно считать ответом. Но я нахожусь в поиске, чтобы узнать, как установить содержание ответа, не связанное с размером. Хотя, я полагаю, это не то, что предлагается.

0 голосов
/ 07 ноября 2018

Увеличьте connectionPool.maxContentLength в драйвере и maxContentLength в Gremlin Server за пределы 65536. В идеале два размера должны совпадать на клиенте и сервере, но я полагаю, что это не обязательно.

Я полагаю, что вы отправляете на сервер очень большой скрипт на основе этого вопроса. Береги себя с этим. Большие сценарии, особенно те, которые не параметризованы , могут вызывать различные проблемы в поведении вашего приложения.

...