Opened 7 years ago

Closed 3 years ago

#6668 closed defect (user disappeared)

Tor configured as transparent proxy buffers hundreds of MB from client connections.

Reported by: cypherpunks Owned by:
Priority: Medium Milestone: Tor: unspecified
Component: Core Tor/Tor Version: Tor: 0.2.3.20-rc
Severity: Normal Keywords: tor-client
Cc: Actual Points:
Parent ID: Points:
Reviewer: Sponsor:

Description

Hello, I have Tor running in one VM (not very much RAM), client programs in another VM. Tor is configured as transparent proxy. When I browse the WWW or download something everything works fine, but when I try to upload a large file via HTTP (didn't try other protocols), Tor reads huge amounts of data from the client in a few seconds and obviously stores it in memory (ps indicates it uses several hundred MB, which is bad because the VM doesn't have much RAM). That is the first bug. Tor probably needs a buffer, but not so large, maybe 64k or something like that.

The second bug is that when the client terminates (interrupts) the transfer, Tor keeps sending what is in the buffer. No way for the client to stop it. Tor should notice that the connection on the client side is finished and end the corresponding stream to the Tor network. Actually this may not be a bug on its own but it aggravates the problem of the first bug, because when I start and cancel uploads the network connection is clogged and I can only restart the Tor process. But of course if the upload terminates normally and Tor has only 64kB buffer, it should not terminate before it has sent the buffered data. I hope you understand what I mean. :-)

Child Tickets

Change History (5)

comment:1 Changed 7 years ago by nickm

Milestone: Tor: 0.2.4.x-final

comment:2 Changed 7 years ago by nickm

Keywords: tor-client added

comment:3 Changed 7 years ago by nickm

Component: Tor ClientTor

comment:4 Changed 7 years ago by nickm

Milestone: Tor: 0.2.4.x-finalTor: unspecified

I think the first one is a kernel issue, where when Tor stops reading, the kernel doesn't stop accepting bytes from the client application. What kernel are you using there?

The second one doesn't sound like a bug at all. When an app sends data then closes a connection, it typically expects the data to be treated as sent, yeah?

comment:5 Changed 3 years ago by nickm

Resolution: user disappeared
Severity: Normal
Status: newclosed
Note: See TracTickets for help on using tickets.