Re: Very rare requests claim they are from 127.0.0.1

Christopher Schultz <[email protected]> Tue, 5 May 2026 12:40:14 -0400
Newsgroups gmane.comp.jakarta.tomcat.user
Message-ID <[email protected]>
Mark,

On 5/5/26 11:04 AM, Mark Thomas wrote:
> 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)?

Correct, 127.0.0.1 would be *either* the httpd instance (forwarded over 
AJP) or the Tomcat server itself. Neither are likely, as the users are 
always coming through a load-balancer which is forwarding the user's 
real IP, and it should be forwarded all the way through.

>> 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.

I can do that, but lining things up with requests to Tomcat might not be 
obvious. I think I'll have to set up the unique request identifier stuff 
Rainer added (somewhat) recently.

-chris