Graylog2 / Graylog2/graylog2-server

unable to start GELF input on IPv6 address

Open
#15,177 6 comments 0 reactions 0 assignees View on GitHub
bug triaged
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.