You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@river.apache.org by "Mark Brouwer (JIRA)" <ji...@apache.org> on 2007/03/31 18:39:25 UTC

[jira] Created: (RIVER-21) HTTP based server endpoints only work reliable over mod_proxy when downgrading to HTTP 1.0

HTTP based server endpoints only work reliable over mod_proxy when downgrading to HTTP 1.0
------------------------------------------------------------------------------------------

                 Key: RIVER-21
                 URL: https://issues.apache.org/jira/browse/RIVER-21
             Project: River
          Issue Type: Bug
            Reporter: Mark Brouwer


During my work for "Jini across the Firewall" in which the client {{HttpEndpoint}} communicated with an {{HttpServerEndpoint}} through {{mod_proxy}} (Apache 1.2.x and 2.x) I noticed I could only have reliable connections when I downgraded the HTTP protocol in the Apache configuration with:
{noformat:nopanel}
SetEnvIf User-Agent ".*com\.sun.*HttpClientConnection" downgrade-1.0
{noformat}

I was in the possession of some log files but given the timespan between submitting this issue and the time I ran into the problems they seem to have disappeared. IIRC the {{HttpEndpoint}} tried to initiate a request over an HTTP connection that was kept alive while the {{HttpServerEndpoint}} thought otherwise.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (RIVER-21) HTTP based server endpoints only work reliable over mod_proxy when downgrading to HTTP 1.0

Posted by "Mark Brouwer (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/RIVER-21?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mark Brouwer updated RIVER-21:
------------------------------

          Component/s: net_jini_jeri
    Affects Version/s: jtsk_2.1

> HTTP based server endpoints only work reliable over mod_proxy when downgrading to HTTP 1.0
> ------------------------------------------------------------------------------------------
>
>                 Key: RIVER-21
>                 URL: https://issues.apache.org/jira/browse/RIVER-21
>             Project: River
>          Issue Type: Bug
>          Components: net_jini_jeri
>    Affects Versions: jtsk_2.1
>            Reporter: Mark Brouwer
>
> During my work for "Jini across the Firewall" in which the client {{HttpEndpoint}} communicated with an {{HttpServerEndpoint}} through {{mod_proxy}} (Apache 1.2.x and 2.x) I noticed I could only have reliable connections when I downgraded the HTTP protocol in the Apache configuration with:
> {noformat:nopanel}
> SetEnvIf User-Agent ".*com\.sun.*HttpClientConnection" downgrade-1.0
> {noformat}
> I was in the possession of some log files but given the timespan between submitting this issue and the time I ran into the problems they seem to have disappeared. IIRC the {{HttpEndpoint}} tried to initiate a request over an HTTP connection that was kept alive while the {{HttpServerEndpoint}} thought otherwise.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (RIVER-21) HTTP based server endpoints only work reliable over mod_proxy when downgrading to HTTP 1.0

Posted by "Mark Brouwer (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/RIVER-21?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12489987 ] 

Mark Brouwer commented on RIVER-21:
-----------------------------------

When cleaning my computer I found some stacktraces I mentioned were lost, see below. The stack traces occurred in the ServiceUI of Seven (client side).

{noformat:nopanel}
mod_proxy Apache 2.0.52

09-Sep-2006 21:09:55 com.sun.jini.example.browser.Browser addOne
INFO: obtaining locator failed
java.rmi.UnmarshalException: exception unmarshalling response; nested exception is: 
	java.io.EOFException
	at net.jini.jeri.BasicInvocationHandler.invokeRemoteMethodOnce(BasicInvocationHandler.java:847)
	at net.jini.jeri.BasicInvocationHandler.invokeRemoteMethod(BasicInvocationHandler.java:659)
	at net.jini.jeri.BasicInvocationHandler.invoke(BasicInvocationHandler.java:528)
	at org.cheiron.seven.proxy.BasicInvocationHandler.invokeMethod(BasicInvocationHandler.java:324)
	at org.cheiron.seven.proxy.BasicInvocationHandler.invoke(BasicInvocationHandler.java:129)
	at org.cheiron.seven.proxy.StubInvokerHandler.invoke(StubInvokerHandler.java:142)
	at org.cheiron.seven.proxy.BasicInvocationHandler.invokeMethod(BasicInvocationHandler.java:324)
	at org.cheiron.seven.proxy.ServiceStubProxyHandler.specializedInvoke(ServiceStubProxyHandler.java:164)
	at org.cheiron.seven.proxy.BasicInvocationHandler.invoke(BasicInvocationHandler.java:119)
	at com.sun.jini.reggie.$Proxy8.getLocator(Unknown Source)
	at com.sun.jini.reggie.RegistrarProxy.getLocator(RegistrarProxy.java:262)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.cheiron.seven.proxy.BasicInvocationHandler.invokeMethod(BasicInvocationHandler.java:328)
	at org.cheiron.seven.proxy.BasicInvocationHandler.invoke(BasicInvocationHandler.java:129)
	at $Proxy7.getLocator(Unknown Source)
	at com.sun.jini.example.browser.Browser.addOne(Browser.java:620)
	at com.sun.jini.example.browser.Browser.access$3200(Browser.java:148)
	at com.sun.jini.example.browser.Browser$LookupListener$1.run(Browser.java:1116)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at com.sun.jini.example.browser.Browser$Handler$1.run(Browser.java:784)
	at java.security.AccessController.doPrivileged(Native Method)
	at com.sun.jini.example.browser.Browser$Handler.invoke(Browser.java:776)
	at $Proxy6.run(Unknown Source)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
Caused by: java.io.EOFException
	at net.jini.jeri.BasicObjectEndpoint.executeCall(BasicObjectEndpoint.java:415)
	at net.jini.jeri.BasicInvocationHandler.invokeRemoteMethodOnce(BasicInvocationHandler.java:806)
	... 35 more

mod_proxy Apache 2.2.3

java.rmi.UnmarshalException: exception unmarshalling response; nested exception is: 
	java.io.IOException: stream invalid
	at net.jini.jeri.BasicInvocationHandler.invokeRemoteMethodOnce(BasicInvocationHandler.java:847)
	at net.jini.jeri.BasicInvocationHandler.invokeRemoteMethod(BasicInvocationHandler.java:659)
	at net.jini.jeri.BasicInvocationHandler.invoke(BasicInvocationHandler.java:528)
	at org.cheiron.seven.proxy.BasicInvocationHandler.invokeMethod(BasicInvocationHandler.java:324)
	at org.cheiron.seven.proxy.BasicInvocationHandler.invoke(BasicInvocationHandler.java:129)
	at org.cheiron.seven.proxy.StubInvokerHandler.invoke(StubInvokerHandler.java:142)
	at org.cheiron.seven.proxy.BasicInvocationHandler.invokeMethod(BasicInvocationHandler.java:324)
	at org.cheiron.seven.proxy.ServiceStubProxyHandler.specializedInvoke(ServiceStubProxyHandler.java:164)
	at org.cheiron.seven.proxy.BasicInvocationHandler.invoke(BasicInvocationHandler.java:119)
	at org.cheiron.seven.core.$Proxy18.getServiceUids(Unknown Source)
	at org.cheiron.seven.core.ContainerAdminProxy.getServiceUids(ContainerAdminProxy.java:382)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.cheiron.seven.proxy.BasicInvocationHandler.invokeMethod(BasicInvocationHandler.java:328)
	at org.cheiron.seven.proxy.BasicInvocationHandler.invoke(BasicInvocationHandler.java:129)
	at $Proxy17.getServiceUids(Unknown Source)
	at org.cheiron.seven.admin.ui.SevenModel$1.action(SevenModel.java:653)
	at org.cheiron.util.swing.SwingTask$1.run(SwingTask.java:170)
	at sun.reflect.GeneratedMethodAccessor14.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.cheiron.util.proxy.BasicInvocationHandler.invokeMethod(BasicInvocationHandler.java:149)
	at org.cheiron.util.proxy.BasicInvocationHandler.invoke(BasicInvocationHandler.java:111)
	at org.cheiron.util.proxy.ProxyWrapper$ProxyWrapperHandler.access$1001(ProxyWrapper.java:873)
	at org.cheiron.util.proxy.ProxyWrapper$ProxyWrapperHandler$1$1.run(ProxyWrapper.java:1012)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.cheiron.util.proxy.ProxyWrapper$ProxyWrapperHandler$1.run(ProxyWrapper.java:1005)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.cheiron.util.proxy.ProxyWrapper$ProxyWrapperHandler.invoke(ProxyWrapper.java:936)
	at $Proxy24.run(Unknown Source)
	at org.cheiron.util.swing.SwingTask.run(SwingTask.java:165)
	at org.cheiron.util.thread.ThreadPoolImpl$ContextTask$1.run(ThreadPoolImpl.java:1527)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.cheiron.util.thread.ThreadPoolImpl$ContextTask.run(ThreadPoolImpl.java:1522)
	at org.cheiron.util.thread.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:2657)
Caused by: java.io.IOException: stream invalid
	at com.sun.jini.jeri.internal.http.Request$ContentInputStream.invalidate(Request.java:430)
	at com.sun.jini.jeri.internal.http.Request$ContentInputStream.checkOpen(Request.java:378)
	at com.sun.jini.jeri.internal.http.Request$ContentInputStream.read(Request.java:302)
	at com.sun.jini.jeri.internal.http.Request$ContentInputStream.read(Request.java:297)
	at net.jini.jeri.BasicObjectEndpoint.executeCall(BasicObjectEndpoint.java:411)
	at net.jini.jeri.BasicInvocationHandler.invokeRemoteMethodOnce(BasicInvocationHandler.java:806)
	... 36 more
Caused by: com.sun.jini.jeri.internal.http.HttpParseException: unexpected EOF in start line
	at com.sun.jini.jeri.internal.http.StartLine.<init>(StartLine.java:81)
	at com.sun.jini.jeri.internal.http.MessageReader.readStartLine(MessageReader.java:63)
	at com.sun.jini.jeri.internal.http.HttpClientConnection$OutboundRequestImpl.startInput(HttpClientConnection.java:747)
	at com.sun.jini.jeri.internal.http.Request$ContentInputStream.checkOpen(Request.java:365)
	... 40 more
{noformat}

Also I found some cryptic notes as part of the file, along the lines of "some request succeed, some of them fail without a detectable pattern" and "Apache doesn't log the requests and no reverse proxy takes place".

> HTTP based server endpoints only work reliable over mod_proxy when downgrading to HTTP 1.0
> ------------------------------------------------------------------------------------------
>
>                 Key: RIVER-21
>                 URL: https://issues.apache.org/jira/browse/RIVER-21
>             Project: River
>          Issue Type: Bug
>            Reporter: Mark Brouwer
>
> During my work for "Jini across the Firewall" in which the client {{HttpEndpoint}} communicated with an {{HttpServerEndpoint}} through {{mod_proxy}} (Apache 1.2.x and 2.x) I noticed I could only have reliable connections when I downgraded the HTTP protocol in the Apache configuration with:
> {noformat:nopanel}
> SetEnvIf User-Agent ".*com\.sun.*HttpClientConnection" downgrade-1.0
> {noformat}
> I was in the possession of some log files but given the timespan between submitting this issue and the time I ran into the problems they seem to have disappeared. IIRC the {{HttpEndpoint}} tried to initiate a request over an HTTP connection that was kept alive while the {{HttpServerEndpoint}} thought otherwise.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.