Graylog2 / Graylog2/graylog2-server

Exception in Maxmind when resolving the Geo location of an IP

Open
#21,886 2 comments 0 reactions 0 assignees View on GitHub
bug triaged
Dominant language
Java
Stars
8.1k
Forks
1.1k
Avg merge
1d 20h
Merged PRs (30d)
217

Description

## Expected Behavior
Retrieving a Geo Location for an IP should return a geo-location.

## Current Behavior
Retrieving a Geo Location of an IP regularly fails with MaxMind. With following exception:
```
2025-03-05 02:21:19,623 ERROR: org.graylog.plugins.map.geoip.IpInfoIpResolver - Error getting IP location info for '/140.235.72.39'. Error getting record for IP /140.235.72.39 - Error creating object: null
com.maxmind.db.DeserializationException: Error getting record for IP /140.235.72.39 - Error creating object: null
at com.maxmind.db.Reader.getRecord(Reader.java:188) ~[graylog.jar:?]
at com.maxmind.db.Reader.get(Reader.java:152) ~[graylog.jar:?]
at org.graylog.plugins.map.geoip.IPinfoIPLocationDatabaseAdapter.get(IPinfoIPLocationDatabaseAdapter.java:51) ~[graylog.jar:?]
at org.graylog.plugins.map.geoip.IPinfoIPLocationDatabaseAdapter.ipInfoStandardLocation(IPinfoIPLocationDatabaseAdapter.java:61) ~[graylog.jar:?]
at org.graylog.plugins.map.geoip.IpInfoLocationResolver.doGetGeoIpData(IpInfoLocationResolver.java:50) [graylog.jar:?]
at org.graylog.plugins.map.geoip.GeoIpResolver.getGeoIpData(GeoIpResolver.java:64) [graylog.jar:?]
at org.graylog.plugins.map.geoip.GeoIpResolverEngine.addGIMGeoIpDataIfPresent(GeoIpResolverEngine.java:140) [graylog.jar:?]
at org.graylog.plugins.map.geoip.GeoIpResolverEngine.filter(GeoIpResolverEngine.java:120) [graylog.jar:?]
at org.graylog.plugins.map.geoip.processor.GeoIpProcessor.process(GeoIpProcessor.java:100) [graylog.jar:?]
at org.graylog2.shared.buffers.processors.ProcessBufferProcessor.handleMessage(ProcessBufferProcessor.java:175) [graylog.jar:?]
at org.graylog2.shared.buffers.processors.ProcessBufferProcessor.dispatchMessage(ProcessBufferProcessor.java:145) [graylog.jar:?]
at org.graylog2.shared.buffers.processors.ProcessBufferProcessor.onEvent(ProcessBufferProcessor.java:115) [graylog.jar:?]
at org.graylog2.shared.buffers.processors.ProcessBufferProcessor.onEvent(ProcessBufferProcessor.java:54) [graylog.jar:?]
at org.graylog2.shared.buffers.PartitioningWorkHandler.onEvent(PartitioningWorkHandler.java:52) [graylog.jar:?]
at com.lmax.disruptor.BatchEventProcessor.processEvents(BatchEventProcessor.java:167) [graylog.jar:?]
at com.lmax.disruptor.BatchEventProcessor.run(BatchEventProcessor.java:122) [graylog.jar:?]
at com.codahale.metrics.InstrumentedThreadFactory$InstrumentedRunnable.run(InstrumentedThreadFactory.java:66) [graylog.jar:?]
at java.base/java.lang.Thread.run(Thread.java:840) [?:?]
Caused by: com.maxmind.db.DeserializationException: Error creating object: null
at com.maxmind.db.Decoder.decodeMapIntoObject(Decoder.java:445) ~[graylog.jar:?]
at com.maxmind.db.Decoder.decodeMap(Decoder.java:341) ~[graylog.jar:?]
at com.maxmind.db.Decoder.decodeByType(Decoder.java:162) ~[graylog.jar:?]
at com.maxmind.db.Decoder.decode(Decoder.java:151) ~[graylog.jar:?]
at com.maxmind.db.Decoder.decode(Decoder.java:76) ~[graylog.jar:?]
at com.maxmind.db.Reader.resolveDataPointer(Reader.java:413) ~[graylog.jar:?]
at com.maxmind.db.Reader.getRecord(Reader.java:185) ~[graylog.jar:?]
... 17 more
Caused by: java.lang.reflect.InvocationTargetException
at jdk.internal.reflect.GeneratedConstructorAccessor142.newInstance(Unknown Source) ~[?:?]
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:?]
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500) ~[?:?]
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481) ~[?:?]
at com.maxmind.db.Decoder.decodeMapIntoObject(Decoder.java:441) ~[graylog.jar:?]
at com.maxmind.db.Decoder.decodeMap(Decoder.java:341) ~[graylog.jar:?]
at com.maxmind.db.Decoder.decodeByType(Decoder.java:162) ~[graylog.jar:?]
at com.maxmind.db.Decoder.decode(Decoder.java:151) ~[graylog.jar:?]
at com.maxmind.db.Decoder.decode(Decoder.java:76) ~[graylog.jar:?]
at com.maxmind.db.Reader.resolveDataPointer(Reader.java:413) ~[graylog.jar:?]
at com.maxmind.db.Reader.getRecord(Reader.java:185) ~[graylog.jar:?]
... 17 more
Caused by: java.lang.NumberFormatException: For input string: ""
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:67) ~[?:?]
at java.base/java.lang.Long.parseLong(Long.java:721) ~[?:?]
at java.base/java.lang.Long.valueOf(Long.java:1163) ~[?:?]
at org.graylog.plugins.map.geoip.IPinfoStandardLocation.(IPinfoStandardLocation.java:58) ~[graylog.jar:?]
at jdk.internal.reflect.GeneratedConstructorAccessor142.newInstance(Unknown Source) ~[?:?]
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:?]
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500) ~[?:?]
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481) ~[?:?]
at com.maxmind.db.Decoder.decodeMapIntoObject(Decoder.java:441) ~[graylog.jar:?]
at com.maxmind.db.Decoder.decodeMap(Decoder.java:341) ~[graylog.jar:?]
at com.maxmind.db.Decoder.decodeByType(Decoder.java:162) ~[graylog.jar:?]
at com.maxmind.db.Decoder.decode(Decoder.java:151) ~[graylog.jar:?]
at com.maxmind.db.Decoder.decode(Decoder.java:76) ~[graylog.jar:?]
at com.maxmind.db.Reader.resolveDataPointer(Reader.java:413) ~[graylog.jar:?]
at com.maxmind.db.Reader.getRecord(Reader.java:185) ~[graylog.jar:?]
... 17 more
```

## Possible Solution
Do we need to have a deeper look here?
https://github.com/maxmind/MaxMind-DB-Reader-java/blob/main/src/main/java/com/maxmind/db/Reader.java#L188

## Steps to Reproduce (for bugs)
Not known. But can be observed in user logs.

## Your Environment
* Graylog Version: 6.1

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.