benfry / processing4

Processing 4.x releases for Java 17
https://processing.org
Other
1.35k stars 240 forks source link

Processing won't start a second time when a system proxy server is set on Linux #438

Open rapiz1 opened 2 years ago

rapiz1 commented 2 years ago
## Description

The IDE will crash after a second start, without any error messages.

Expected Behavior

The IDE can start

Current Behavior

The IDE failed to start at the second time

Steps to Reproduce

  1. Open processing
  2. Quit
  3. Open processing again.

Your Environment

Possible Causes / Solutions

After rm -rf ~/.config/processing, the IDE can start.

rapiz1 commented 2 years ago

In preference.txt,

instance_server.key=0.22815461437707485
instance_server.port=37109

is relevant. If these two lines are deleted, then the next start will work

rapiz1 commented 2 years ago

Background: I have http and sock proxy set, in the KDE Proxy setting. After reading https://github.com/processing/processing4/blob/2a1fae8f77243716b48eee958229cb1f40dcbd09/app/src/processing/app/SingleInstance.java#L130 and strace -f ./processing, I found out that processing try to connect the instance server via the proxy. This didn't work, of course.

Seting proxy.system=false in preference.txt solves the issue.

benfry commented 2 years ago

Hm, I don't personally know enough about system proxies to understand why enabling it would cause connections to localhost break. Maybe someone else can help.

guilhermesilveira commented 2 years ago

@rapiz1 can you try it with beta 7?

dev01111 commented 2 years ago

Working on a fix for this issue. Maybe we should disable proxys when running singleinstance.java?

rapiz1 commented 2 years ago

I now think a sane proxy implementation should handle the loopback address. I haven't tried processing ever since. Maybe this isn't a issue that processing should fix?

---Original--- From: @.> Date: Tue, Jun 21, 2022 10:45 AM To: @.>; Cc: "Yujia @.**@.>; Subject: Re: [processing/processing4] Processing won't start a second timewhen a system proxy server is set on Linux (Issue #438)

Working on a fix for this issue. Maybe we should disable proxys when running singleinstance.java?

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>

dev01111 commented 2 years ago

501

This little addition of code doesn't ask the proxy about a private Loopback IP (localhost also known as 127.0.0.1) resolving lots of potential issues. However it is untested, try building this code.

benfry commented 2 years ago

Ok, thanks; I can't just ship it out without testing, we'd need someone who's dealing with proxies to weigh in.

As far as I know, localhost should not be proxied (why would it be? it's not like the receiving proxy server can redirect traffic back to… 127.0.0.1), but it seems that things have gone back and forth with whether that's the correct behavior in Java or not:

https://bugs.openjdk.org/browse/JDK-8025065 https://bugs.openjdk.org/browse/JDK-6737819

dev01111 commented 2 years ago

Ok, thanks; I can't just ship it out without testing, we'd need someone who's dealing with proxies to weigh in.

As far as I know, localhost should not be proxied (why would it be? it's not like the receiving proxy server can redirect traffic back to… 127.0.0.1), but it seems that things have gone back and forth with whether that's the correct behavior in Java or not:

https://bugs.openjdk.org/browse/JDK-8025065 https://bugs.openjdk.org/browse/JDK-6737819

Java should definitely fix this, I just thought that maybe a temporary solution could be good while the nerds at Oracle work this out.

I also tried building it, no javac errors.