Re: Very rare requests claim they are from 127.0.0.1

Mark Thomas <[email protected]> Tue, 5 May 2026 16:04:07 +0100
Newsgroups gmane.comp.jakarta.tomcat.user
Message-ID <[email protected]>
On 02/05/2026 16:27, Christopher Schultz wrote:
> All,
> 
> I've got an odd situation where some requests arriving in my application 
> are claiming to come from 127.0.0.1 as the remote IP address.
> 
> I'm calling HttpServletRequest.getRemoteAddr and storing it in the 
> user's session. I'm an admin, so I can see this attribute in users' 
> sessions and very rarely I'm seeing that it's set to 127.0.0.1.
> 
> My setup is:
> 
> AWS ALB -> httpd [mod_jk] -> [stunnel] -> Tomcat [AjpNioProtocol]
> 
> This does not require high load. All httpd and Tomcat instances are 
> configured identically. And this happens very rarely, but enough that I 
> have noticed it and I'd like to understand what might be happening.
> 
> An interview with ChatGPT yielded this comment:
> 
> "
> AJP is not resilient to partial/ambiguous reads across a tunneled TCP
> stream. If anything about framing or connection reuse gets even slightly 
> out of sync, Tomcat will still process the request—but silently fall 
> back to 127.0.0.1.
> "

Yeah, that looks like nonsense.

I assume that it isn't at all possible that the request has been made by 
127.0.0.1 (the machine where httpd is running)?

> Honestly, I think that ChatGPT has grabbed on to the idea that "httpd 
> and Tomcat are fine, so it must be stunnel" which seems odd to me, but 
> I'm wondering about its comment.
> 
> My expectation is that if "something is wrong" then mod_jk will kill the 
> request. Or maybe Tomcat will. Or both.
> 
> I see no correlation with errors in my mod_jk.log file (which has very 
> few if any errors).
> 
> Any suggestions for what might be happening? I can't reproduce this 
> myself but I control everything in the stack except for the AWS ALB 
> (which I can configure, but obviously, I can't directly-instrument in 
> the way that I could, say, httpd, Tomcat, or my own application).

The remote address is held in a MessageBytes object which is reset to 
NULL on a new request so it looks like something is setting it 
explicitly to "127.0.0.1".

That makes me think it is something in httpd/mod_jk rather than Tomcat.

I think I'd start by looking at the access logs for the requests in 
question in httpd and see which IP is logged there.

Mark