Graylog2 / Graylog2/graylog2-server
unable to start GELF input on IPv6 address
- Dominant language
- Java
- Stars
- 8.1k
- Forks
- 1.1k
- Avg merge
- 1d 21h
- Merged PRs (30d)
- 218
Description
Want to have IPv6 input for GELF data.
## Expected Behavior
Input starts successfully
## Current Behavior
```
An input has failed to start (triggered 3 minutes ago)
Input 640bce814232ab7b1843d60f has failed to start on node 2b572ad1-3d43-4707-a729-ccbcf6a16ee9 for this reason: »null«.
```
logs:
```
21:36:45.788 [eventbus-handler-1] INFO org.graylog2.inputs.InputStateListener - Input [GELF TCP/6434816da0af4957c20395a4] is now STARTING
21:36:45.822 [netty-transport-2] WARN org.graylog2.plugin.inputs.transports.AbstractTcpTransport - Failed to start channel for input GELFTCPInput{title=gelf, type=org.graylog2.inputs.gelf.tcp.GELFTCPInput, nodeId=e7deda98-c981-43dc-bc53-239950930eab}
java.nio.channels.UnsupportedAddressTypeException: null
at sun.nio.ch.Net.checkAddress(Net.java:161) ~[?:?]
at sun.nio.ch.ServerSocketChannelImpl.netBind(ServerSocketChannelImpl.java:330) ~[?:?]
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:294) ~[?:?]
at io.netty.channel.socket.nio.NioServerSocketChannel.doBind(NioServerSocketChannel.java:141) ~[graylog.jar:?]
at io.netty.channel.AbstractChannel$AbstractUnsafe.bind(AbstractChannel.java:562) [graylog.jar:?]
at io.netty.channel.DefaultChannelPipeline$HeadContext.bind(DefaultChannelPipeline.java:1334) [graylog.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeBind(AbstractChannelHandlerContext.java:600) [graylog.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.bind(AbstractChannelHandlerContext.java:579) [graylog.jar:?]
at io.netty.channel.DefaultChannelPipeline.bind(DefaultChannelPipeline.java:973) [graylog.jar:?]
at io.netty.channel.AbstractChannel.bind(AbstractChannel.java:260) [graylog.jar:?]
at io.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:356) [graylog.jar:?]
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174) [graylog.jar:?]
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167) [graylog.jar:?]
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470) [graylog.jar:?]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569) [graylog.jar:?]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) [graylog.jar:?]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [graylog.jar:?]
at com.codahale.metrics.InstrumentedExecutorService$InstrumentedRunnable.run(InstrumentedExecutorService.java:180) [graylog.jar:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?]
at com.codahale.metrics.InstrumentedThreadFactory$InstrumentedRunnable.run(InstrumentedThreadFactory.java:66) [graylog.jar:?]
at java.lang.Thread.run(Thread.java:833) [?:?]
21:36:45.847 [inputs-0] ERROR org.graylog2.shared.inputs.InputLauncher - The [org.graylog2.inputs.gelf.tcp.GELFTCPInput] input with ID <6434816da0af4957c20395a4> misfired. Reason: null
org.graylog2.plugin.inputs.MisfireException: org.graylog2.plugin.inputs.MisfireException: java.nio.channels.UnsupportedAddressTypeException
at org.graylog2.plugin.inputs.MessageInput.launch(MessageInput.java:161) ~[graylog.jar:?]
at org.graylog2.shared.inputs.InputLauncher$1.run(InputLauncher.java:91) [graylog.jar:?]
at com.codahale.metrics.InstrumentedExecutorService$InstrumentedRunnable.run(InstrumentedExecutorService.java:180) [graylog.jar:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) [?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?]
at java.lang.Thread.run(Thread.java:833) [?:?]
Caused by: org.graylog2.plugin.inputs.MisfireException: java.nio.channels.UnsupportedAddressTypeException
at org.graylog2.plugin.inputs.transports.AbstractTcpTransport.launch(AbstractTcpTransport.java:224) ~[graylog.jar:?]
at org.graylog2.plugin.inputs.MessageInput.launch(MessageInput.java:158) ~[graylog.jar:?]
... 7 more
Caused by: java.nio.channels.UnsupportedAddressTypeException
at sun.nio.ch.Net.checkAddress(Net.java:161) ~[?:?]
at sun.nio.ch.ServerSocketChannelImpl.netBind(ServerSocketChannelImpl.java:330) ~[?:?]
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:294) ~[?:?]
at io.netty.channel.socket.nio.NioServerSocketChannel.doBind(NioServerSocketChannel.java:141) ~[graylog.jar:?]
at io.netty.channel.AbstractChannel$AbstractUnsafe.bind(AbstractChannel.java:562) ~[graylog.jar:?]
at io.netty.channel.DefaultChannelPipeline$HeadContext.bind(DefaultChannelPipeline.java:1334) ~[graylog.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.invokeBind(AbstractChannelHandlerContext.java:600) ~[graylog.jar:?]
at io.netty.channel.AbstractChannelHandlerContext.bind(AbstractChannelHandlerContext.java:579) ~[graylog.jar:?]
at io.netty.channel.DefaultChannelPipeline.bind(DefaultChannelPipeline.java:973) ~[graylog.jar:?]
at io.netty.channel.AbstractChannel.bind(AbstractChannel.java:260) ~[graylog.jar:?]
at io.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:356) ~[graylog.jar:?]
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174) ~[graylog.jar:?]
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167) ~[graylog.jar:?]
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470) ~[graylog.jar:?]
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569) ~[graylog.jar:?]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[graylog.jar:?]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[graylog.jar:?]
at com.codahale.metrics.InstrumentedExecutorService$InstrumentedRunnable.run(InstrumentedExecutorService.java:180) ~[graylog.jar:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
at com.codahale.metrics.InstrumentedThreadFactory$InstrumentedRunnable.run(InstrumentedThreadFactory.java:66) ~[graylog.jar:?]
... 1 more
```
## Possible Solution
## Steps to Reproduce (for bugs)
Add an IPv6 address GELF input, and try to start it.
## Context
IPv6 address tried as `[::1]` and without `::1`,or `fca2:927d:4d50:715c:f0b4::5` same result.
```
bind_address:
[::1]
charset_name:
UTF-8
decompress_size_limit:
8388608
max_message_size:
2097152
number_worker_threads:
4
override_source:
port:
11514
recv_buffer_size:
1048576
tcp_keepalive:
true
tls_cert_file:
tls_client_auth:
disabled
tls_client_auth_cert_file:
tls_enable:
false
tls_key_file:
tls_key_password:
********
use_null_delimiter:
true
```
## Your Environment
* Graylog Version: 5.0.5
* Java Version: OpenJDK 17
* Elasticsearch Version: OpenSearch 13 1.3.6
* MongoDB Version: 5.0
* Operating System: FreeBSD 13.1-RELEASE amd64
* Browser version: firefox 112
Contributor guide
Research direction
Start with the GELFTCPInput and AbstractTcpTransport entry points named in the stack trace, then reproduce the failure using the IPv6 bind addresses and environment described. Trace why the server channel rejects the address; done means a GELF input starts successfully and accepts IPv6 connections without UnsupportedAddressTypeException.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- networking
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100