Initial post on Apple Support Communities: https://discussions.apple.com/message/25268765
One of the big changes introduced by 10.9.2 update - are VPN changes (security fixes). Unfortunately, whatever these changes are - they "broke" Eclipse (OpenSource IDE) debugger. I am not sure if all programming languages (Eclipse plugins) are affected by this, but I know for sure that 'Epic' (Perl plugin) debugger stopped working while system is connected through VPN.
Here is the error that gets “popped-up” in the Eclipse:
Timed out while waiting for Perl debugger connection
… and here is exact exception stack that gets printed:
Unable to connect to remote host: 130.10.210.74:5000
Compilation failed in require.
at /Users/valeriy/workspace/ROBO-PROD-RA-685/src/lib/test/Val_test.pm line 0.
main::BEGIN() called at /Users/valeriy/workspace/.metadata/.plugins/org.epic.debug/perl5db.pl line 0
eval {...} called at /Users/valeriy/workspace/.metadata/.plugins/org.epic.debug/perl5db.pl line 0
BEGIN failed--compilation aborted.
at /Users/valeriy/workspace/ROBO-PROD-RA-685/src/lib/test/Val_test.pm line 0.
Can't use an undefined value as a symbol reference at /Users/valeriy/workspace/.metadata/.plugins/org.epic.debug/perl5db.pl line 7596.
END failed--call queue aborted.
at /Users/valeriy/workspace/ROBO-PROD-RA-685/src/lib/test/Val_test.pm line 0.
(of course IP address changes dynamically for each VPN connection session)…
I was able to prove that this issue is related to 10.9.2 update:
Steps to reproduce this issue (using Mac OS X 10.9.2 or higher):
I am programmer/software developer, I work remotely (telecommute) and thus have to rely on use of VPN to connect to company's intranet. Perl - is primary language used by my team, and we use Eclipse IDE with Epic plugin - heavily. Use of Epic's debugger - is a very large aspect of my work, I cannot work without it. So in essense, 10.9.2 has entirely disrupted my ability to work! It took me almost a week to get back to normal work environment, and I cannot afford to let it happen again... I need Apple's development team resolve this VPN related issue, as soon as possible! Because of this issue, I am stuck with 10.9.1 and can not upgrade my laptop to any other versions. In fact, I had to disable system updates - just so I do not run into this issue again... I contacted Apple's Tech Support on 02/28 with this issue (Ref: 582428110), asking to raise trouble ticket. Since then, I tried to follow-up on that issue, but do not get any information - other than Eclipse (or Epic) developers need to update the system...
Please help eliminate this problem - it keeps me from upgrading my system to newer versions (it is at 10.9.4 currently, while I am still at 10.9.1) !!!
It is an EPIC implementation specific issue, other plugins will not likely be affected.
In debug mode EPIC opens a listening socket on local port 5000 and then instructs perl -d to connect to this port.
In your case perl -d is trying to connect to "130.10.210.74:5000". I suspect that the address 130.10.210.74, obtained in Java from InetAddress.getLocalHost().getHostAddress() - which in Linux seems to return the IP address that "ping
hostname" would report in a bash shell - is for some reason not the address to which the listening socket was bound.The listening socket is bound without specifyinc a concrete IP address, so it should listen on all interfaces - using the special 0.0.0.0:5000 address. There is also an influence of whether the JVM was started with -Djava.net.preferIPv4Stack=true command-line option - if not, it may be using IPv6 stack instead (try specifying the option to see if it changes anything for you).
You can also try opening an EPIC debug session and then use "netstat -an | grep 5000" and "ping
hostname" to compare the listening and resolved IP addresses in working and non-working configuration.Here's another troubleshooting idea: try to make sure that ping
hostnamereports the same local IP address regardless of whether or not you're connected to a VPN. It might be possible to achieve this by adding a line like "127.0.0.1 yourhostname" to /etc/hosts. Instead of 127.0.0.1 you may want to use an actual IP address reported by ifconfig; other software may be also affected by changing /etc/hosts. This tip is based on Linux behavior, hostname resolution in OS X may be different. It may be also affected by other pieces of machine-specific configuration.