Недопустимый аргумент функции при установке размера receivebuffer по netty - PullRequest
0 голосов
/ 28 июня 2019

При запуске микро-сервисов с помощью wso2 msf4j выдает ошибку гнезда 4022 на одном безостановочном компьютере, но отлично работает на нескольких других компьютерах, включая серии j и l. В настоящее время мы используем msf4j 2.1.0, ws02 5.1 и Netty 4.0.3. Большинство настроек остаются по умолчанию, и мы предоставляем только то значение конфигурации, которое требуется для запуска службы.

Мы попытались установить стек TCP с ipv6, но он все еще не работает, удостоверились, что порт сокета доступен, и протестировали порт сокета с помощью тестовой программы, которая показывает, что порт доступен для использования, и попытались использовать больше байтов, чем доступно Приемный буфер системы, который устанавливает максимум около 1 МБ с Java, который не вызывал симптом, если не было сделано непосредственно с кодом C.

Мы потерялись в том, что делать дальше. Можно ли установить размеры буфера Netty с параметром при вызове сервиса?

Ожидаемый вывод - служба может запускаться через порт.

Полученная трассировка стека:

Exception: java.net.SocketException: Invalid function argument (errno:4022)
    2019-06-11 11:28:02 DEBUG - io.netty.channel.ChannelException: java.net.SocketEx
    ception: Invalid function argument (errno:4022)
               at io.netty.channel.socket.DefaultServerSocketChannelConfig.setReceiv
    eBufferSize(DefaultServerSocketChannelConfig.java:123)
               at io.netty.channel.socket.DefaultServerSocketChannelConfig.setOption
    (DefaultServerSocketChannelConfig.java:78)
               at io.netty.channel.DefaultChannelConfig.setOptions(DefaultChannelCon
    fig.java:113)
               at io.netty.bootstrap.ServerBootstrap.init(ServerBootstrap.java:152)
               at io.netty.bootstrap.AbstractBootstrap.initAndRegister(AbstractBoots
    trap.java:308)
               at io.netty.bootstrap.AbstractBootstrap.doBind(AbstractBootstrap.java
    :271)
               at io.netty.bootstrap.AbstractBootstrap.bind(AbstractBootstrap.java:2
    67)
               at org.wso2.carbon.transport.http.netty.listener.NettyListener.startT
    ransport(NettyListener.java:103)
               at org.wso2.carbon.transport.http.netty.listener.NettyListener.start(
    NettyListener.java:69)
               at org.wso2.carbon.kernel.transports.CarbonTransport.startTransport(C
    arbonTransport.java:47)
               at java.util.HashMap$Values.forEach(HashMap.java:980)
               at org.wso2.carbon.kernel.transports.TransportManager.startTransports
    (TransportManager.java:61)
               at org.wso2.msf4j.MicroservicesRunner.start(MicroservicesRunner.java:
    191)
               at com.xypro.nonstop.main.AppInitializer.main(AppInitializer.java:147
    )
    Caused by: java.net.SocketException: Invalid function argument (errno:4022)
               at sun.nio.ch.Net.setIntOption0(Native Method)
               at sun.nio.ch.Net.setSocketOption(Net.java:334)
               at sun.nio.ch.ServerSocketChannelImpl.setOption(ServerSocketChannelIm
    pl.java:151)
               at sun.nio.ch.ServerSocketAdaptor.setReceiveBufferSize(ServerSocketAd
    aptor.java:190)
               at io.netty.channel.socket.DefaultServerSocketChannelConfig.setReceiv
    eBufferSize(DefaultServerSocketChannelConfig.java:121)
               ... 13 more
...