Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 337968

Summary: InheritedChannelConnector seems broken in Jetty 8
Product: [RT] Jetty Reporter: Max Berger <max>
Component: serverAssignee: Project Inbox <jetty-inbox>
Status: CLOSED WONTFIX QA Contact:
Severity: major    
Priority: P3 CC: jesse.mcconnell, jetty-inbox
Version: unspecified   
Target Milestone: 7.2.x   
Hardware: PC   
OS: Linux   
Whiteboard:

Description Max Berger CLA 2011-02-23 08:24:53 EST
Build Identifier: 8.0.0.M2

When trying to start Jetty 8M2 with an InheritedChannelConnector, it fails with the following NPE. This causes Jetty to work, just not accept incoming connections on that channel. A SelectChannelConnector works fine.

The same worked perfectly on 7.1.6.

Relevant snippet from the log:
---
2011-02-22 16:57:22.973:INFO::Started InheritedChannelConnector@0.0.0.0:0
2011-02-22 16:57:23.005:WARN::EXCEPTION
java.lang.NullPointerException
        at org.eclipse.jetty.server.nio.SelectChannelConnector$2.run(SelectChannelConnector.java:287)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:450)
        at java.lang.Thread.run(Thread.java:662)
---
Server is started via xinetd, based on the example config. This worked fine with 7.1.6

Reproducible: Always

Steps to Reproduce:
1. Setup Jetty Through Xinetd, configure InheritedChannelConnector
2. access a page, Xinitd launches jetty, but jetty does not take the inheritedchannel (emits NPE above)
3.
Comment 1 Greg Wilkins CLA 2011-04-04 04:47:49 EDT
I tried to have a look at this, but xinetd appears broken in recent ubuntu releases.

When a clien tries to connect,  I just get warnings like

Apr  4 18:36:34 Brick xinetd[9408]: warning: can't get client address: Transport endpoint is not connected

I see no attempt to start the java process.


Googling for this error message turns up many people with similar problems on other server types - but no solution I can find other than turning off wait (which would not work for a HTTP server).


So if you need this fix, then you need to help me get xinetd working in ubuntu... sorry.
Comment 2 Max Berger CLA 2011-04-04 05:34:59 EDT
Here's the relevant jetty file from /etc/xinetd.d. Right now it is set to disabled, since I am using redirect (not nice, as the originating ip address is lost). You can see that I've also experimented with the "wait" option.

xinetd is 2.3.14-7ubuntu3 (from ubuntu 10.4).

Max

I may be able to create a virtual server where this can be reproduced if needed, but that may take a while.

---
service jetty
{
    disable     = yes

    id          = jetty
    type        = UNLISTED
    wait        = yes
    #wait        = no
    socket_type = stream

    # change this
    user        = jetty
    group       = jetty
    port        = 80

    # sample script for running jetty as a service
    # replace $JETTY_HOME with /path/to/jetty_home/
    server      = /home/jetty/jetty-xinetd.sh
}
---
Comment 3 Jesse McConnell CLA 2016-02-16 16:30:18 EST
cleaning up bugzilla before github issue migration, jetty 8 is EOL