Skip to content

GeoNetwork 4.2.13 upgrade - HTTP software error and portal not working #8977

@erick-ouellette

Description

@erick-ouellette

Describe the bug
After upgrade from 4.2.12 to 4.2.13, the geonetwork portal us unresponsive and logs give the following SwErr

06-Aug-2025 13:34:39.140 INFO [http-nio-8080-exec-10] org.apache.coyote.http11.Http11Processor.service Error parsing HTTP request header
 Note: further occurrences of HTTP request parsing errors will be logged at DEBUG level.
        java.lang.IllegalArgumentException: Invalid character found in method name [0x160x030x010x07a0x010x000x07]0x030x030x0bQ0x870xa5[0xd10x170x990x990xce0xc10xfdz0xa9k0xc1=0xee0x0d0xa60xf6t^0xa3{S0xff0xab00xa70xfa0xae ]. HTTP method names must be tokens
                at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:404)
                at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:270)
                at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
                at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:935)
                at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1826)
                at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
                at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1189)
                at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:658)
                at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
                at java.lang.Thread.run(Thread.java:750)
06-Aug-2025 13:34:39.154 INFO [http-nio-8080-exec-1] org.apache.coyote.http11.Http11Processor.service Error parsing HTTP request header
 Note: further occurrences of HTTP request parsing errors will be logged at DEBUG level.
        java.lang.IllegalArgumentException: Invalid character found in method name [0x160x030x010x07a0x010x000x07]0x030x030x050x000xe4w0xcf0xd7"v40x9eV0x040xa30xa80x1e=0xf1@_0x9b_0xc30xa00x020xb5{N0xaad0xf90x070x91 ]. HTTP method names must be tokens
                at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:404)
                at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:270)
                at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
                at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:935)
                at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1826)
                at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
                at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1189)
                at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:658)
                at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
                at java.lang.Thread.run(Thread.java:750)

To Reproduce
Steps to reproduce the behavior:

  1. Upgrade to 4.2.13
  2. Open Firefox to url 'http://localhost:8080'
  3. SwErr!
  4. ¯\_ (ツ)_/¯

Expected behavior
I expect the portal to just-work

Screenshots
x

Log file
x

Setup:

  • Browser: Firefox 141 with "Don't enable HTTPS-Only Mode". But happens on Edge and Chrome too.
  • Server application:
    • Adoptium Open Java JRE 8u462-b08. But, I tried earlier versions too
    • Tomcat 9.0.106. But I tried earlier versions too 9.0.87
    • GeoNetwork: upgrade to 4.2.13
    • HNAP upgrade to 4.2.13
    • my own docker container environment
  • ElasticSearch and Kibana 7.17.15. But, also tried newest .29

Additional context

Tomcat <Connector>s:

  • protocol="HTTP/1.1", for both
  • SSLEnabled="true" secure="true" sslProtocol="TLS" and local cert, for HTTPS
  • http connector scheme="http" https connector scheme="https" .. in local testing but both become https when i deploy to azure.
  • using proxyName and proxyPort to eliminate use of reverse-proxy
flowchart
  subgraph cont[Container]
    subgraph tomcat[Tomcat]
      subgraph connectors[Connectors]
        http[HTTP/8080]
        https[HTTPS/4430</br>SSL/TLS</br>Self-signed Cert]
        http -- redirect 4430 --> https
      end
    end
  health[Internal Health] -- 8080 --> http
  health -- 4430 --> https
  end
  firefox[FireFox</br>http:80 or</br>http:8080</br>'Don’t enable HTTPS-Only Mode']
  edge[Edge</br>https:443 or</br>https:4430]
  firefox -- 80:8080</br>8080:8080 --> http
  edge -- 443:4430</br>4430:4430 --> https
Loading

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions