[Zdc]SocketStream>>#openConnectionToHostNamed:port: no longer signals am exception on macOS
Hi, It seems that the following consistently crashes a recent/latest Pharo 9 image/vm on macOS: (ZdcSocketStream openConnectionToHostNamed: 'localhost' port: 12335) nextPut: 0; close. Command line, you can try it as follows: $ ./pharo Pharo.image eval "(ZdcSocketStream openConnectionToHostNamed: 'localhost' port: 12335) nextPut: 0; close. #foo" You can replace ZdcSocketStream by SocketStream, same result. Before, trying to connect to a non-existing host:port resulted in a ConnectionTimedOut: Cannot connect to 127.0.0.1:12335. Now, the code just returns and the bad stream is then used as if it is OK, which results in a hard crash. Furthermore, there is no backtrace nor log. Sven
Hi, with the new VM I could not reproduce it. I think it was related with the issue of the NetNameResolver. Which VM version are you using? Thanks On Sun, Jul 18, 2021 at 3:51 PM Sven Van Caekenberghe <sven@stfx.eu> wrote:
Hi,
It seems that the following consistently crashes a recent/latest Pharo 9 image/vm on macOS:
(ZdcSocketStream openConnectionToHostNamed: 'localhost' port: 12335) nextPut: 0; close.
Command line, you can try it as follows:
$ ./pharo Pharo.image eval "(ZdcSocketStream openConnectionToHostNamed: 'localhost' port: 12335) nextPut: 0; close. #foo"
You can replace ZdcSocketStream by SocketStream, same result.
Before, trying to connect to a non-existing host:port resulted in a ConnectionTimedOut: Cannot connect to 127.0.0.1:12335.
Now, the code just returns and the bad stream is then used as if it is OK, which results in a hard crash.
Furthermore, there is no backtrace nor log.
Sven
-- Pablo Tesone. tesonep@gmail.com
Hi Pablo, prometheus:2021-07-16 sven$ ./pharo --version Pharo 9.0.0 built on Jul 6 2021 10:36:56 Compiler: 4.2.1 Compatible Apple LLVM 11.0.3 (clang-1103.0.32.29) Built from: ea8a3bfc - Commit: ea8a3bfc - Date: 2021-07-06 10:23:13 +0200 prometheus:2021-07-16 sven$ ./pharo Pharo.image printVersion [version] 'Pharo9.0.0' 'Pharo-9.0.0+build.1532.sha.e58ef49051bf06cad56a2dda174b8e091a45d5df (64 Bit)' prometheus:2021-07-16 sven$ ./pharo Pharo.image eval "(ZdcSocketStream openConnectionToHostNamed: 'localhost' port: 12335) nextPut: 0; close. #foo" I have said this before, but the VM version is incomprehensible for normal people, why can't it just be something like 10.1 like the rest of the world ? Also, for mere mortals it is impossible to find out if something changed about the VM, let alone what, and how that all relates to specific versions. I know that you guys have a lot of work, and we are very grateful for it, but this is how it looks from the outside. Thx, Sven
On 19 Jul 2021, at 10:56, tesonep@gmail.com wrote:
Hi, with the new VM I could not reproduce it. I think it was related with the issue of the NetNameResolver. Which VM version are you using?
Thanks
On Sun, Jul 18, 2021 at 3:51 PM Sven Van Caekenberghe <sven@stfx.eu> wrote: Hi,
It seems that the following consistently crashes a recent/latest Pharo 9 image/vm on macOS:
(ZdcSocketStream openConnectionToHostNamed: 'localhost' port: 12335) nextPut: 0; close.
Command line, you can try it as follows:
$ ./pharo Pharo.image eval "(ZdcSocketStream openConnectionToHostNamed: 'localhost' port: 12335) nextPut: 0; close. #foo"
You can replace ZdcSocketStream by SocketStream, same result.
Before, trying to connect to a non-existing host:port resulted in a ConnectionTimedOut: Cannot connect to 127.0.0.1:12335.
Now, the code just returns and the bad stream is then used as if it is OK, which results in a hard crash.
Furthermore, there is no backtrace nor log.
Sven
-- Pablo Tesone. tesonep@gmail.com
Thanks, yes it is true, the version name is a mess. We need to improve the version display. I will take note of that and I will fix it. Cheers, Pablo On Mon, Jul 19, 2021 at 11:08 AM Sven Van Caekenberghe <sven@stfx.eu> wrote:
Hi Pablo,
prometheus:2021-07-16 sven$ ./pharo --version Pharo 9.0.0 built on Jul 6 2021 10:36:56 Compiler: 4.2.1 Compatible Apple LLVM 11.0.3 (clang-1103.0.32.29) Built from: ea8a3bfc - Commit: ea8a3bfc - Date: 2021-07-06 10:23:13 +0200 prometheus:2021-07-16 sven$ ./pharo Pharo.image printVersion [version] 'Pharo9.0.0' 'Pharo-9.0.0+build.1532.sha.e58ef49051bf06cad56a2dda174b8e091a45d5df (64 Bit)' prometheus:2021-07-16 sven$ ./pharo Pharo.image eval "(ZdcSocketStream openConnectionToHostNamed: 'localhost' port: 12335) nextPut: 0; close. #foo"
I have said this before, but the VM version is incomprehensible for normal people, why can't it just be something like 10.1 like the rest of the world ?
Also, for mere mortals it is impossible to find out if something changed about the VM, let alone what, and how that all relates to specific versions.
I know that you guys have a lot of work, and we are very grateful for it, but this is how it looks from the outside.
Thx,
Sven
On 19 Jul 2021, at 10:56, tesonep@gmail.com wrote:
Hi, with the new VM I could not reproduce it. I think it was related with the issue of the NetNameResolver. Which VM version are you using?
Thanks
On Sun, Jul 18, 2021 at 3:51 PM Sven Van Caekenberghe <sven@stfx.eu> wrote: Hi,
It seems that the following consistently crashes a recent/latest Pharo 9 image/vm on macOS:
(ZdcSocketStream openConnectionToHostNamed: 'localhost' port: 12335) nextPut: 0; close.
Command line, you can try it as follows:
$ ./pharo Pharo.image eval "(ZdcSocketStream openConnectionToHostNamed: 'localhost' port: 12335) nextPut: 0; close. #foo"
You can replace ZdcSocketStream by SocketStream, same result.
Before, trying to connect to a non-existing host:port resulted in a ConnectionTimedOut: Cannot connect to 127.0.0.1:12335.
Now, the code just returns and the bad stream is then used as if it is OK, which results in a hard crash.
Furthermore, there is no backtrace nor log.
Sven
-- Pablo Tesone. tesonep@gmail.com
-- Pablo Tesone. tesonep@gmail.com
I have done a new release with the fix for the socket connection. It was an issue in the kqueue code in OSX. It was wrongly detecting exceptions and out-of-band data. Please if you can update the VM and test it should be working. Cheers Pablo On Mon, Jul 19, 2021 at 1:13 PM Torsten Bergmann <astares@gmx.de> wrote:
Hi Pablo,
yes - Sven is right on that it could be improved. Thanks for taking care of this important topic.
Cheers, Torsten
*Gesendet:* Montag, 19. Juli 2021 um 11:46 Uhr *Von:* "tesonep@gmail.com" <tesonep@gmail.com> *An:* "Pharo Development List" <pharo-dev@lists.pharo.org> *Betreff:* [Pharo-dev] Re: [Zdc]SocketStream>>#openConnectionToHostNamed:port: no longer signals am exception on macOS Thanks, yes it is true, the version name is a mess. We need to improve the version display. I will take note of that and I will fix it.
Cheers, Pablo
On Mon, Jul 19, 2021 at 11:08 AM Sven Van Caekenberghe <sven@stfx.eu> wrote:
Hi Pablo,
prometheus:2021-07-16 sven$ ./pharo --version Pharo 9.0.0 built on Jul 6 2021 10:36:56 Compiler: 4.2.1 Compatible Apple LLVM 11.0.3 (clang-1103.0.32.29) Built from: ea8a3bfc - Commit: ea8a3bfc - Date: 2021-07-06 10:23:13 +0200 prometheus:2021-07-16 sven$ ./pharo Pharo.image printVersion [version] 'Pharo9.0.0' 'Pharo-9.0.0+build.1532.sha.e58ef49051bf06cad56a2dda174b8e091a45d5df (64 Bit)' prometheus:2021-07-16 sven$ ./pharo Pharo.image eval "(ZdcSocketStream openConnectionToHostNamed: 'localhost' port: 12335) nextPut: 0; close. #foo"
I have said this before, but the VM version is incomprehensible for normal people, why can't it just be something like 10.1 like the rest of the world ?
Also, for mere mortals it is impossible to find out if something changed about the VM, let alone what, and how that all relates to specific versions.
I know that you guys have a lot of work, and we are very grateful for it, but this is how it looks from the outside.
Thx,
Sven
On 19 Jul 2021, at 10:56, tesonep@gmail.com wrote:
Hi, with the new VM I could not reproduce it. I think it was related with the issue of the NetNameResolver. Which VM version are you using?
Thanks
On Sun, Jul 18, 2021 at 3:51 PM Sven Van Caekenberghe <sven@stfx.eu> wrote: Hi,
It seems that the following consistently crashes a recent/latest Pharo 9 image/vm on macOS:
(ZdcSocketStream openConnectionToHostNamed: 'localhost' port: 12335) nextPut: 0; close.
Command line, you can try it as follows:
$ ./pharo Pharo.image eval "(ZdcSocketStream openConnectionToHostNamed: 'localhost' port: 12335) nextPut: 0; close. #foo"
You can replace ZdcSocketStream by SocketStream, same result.
Before, trying to connect to a non-existing host:port resulted in a ConnectionTimedOut: Cannot connect to 127.0.0.1:12335.
Now, the code just returns and the bad stream is then used as if it is OK, which results in a hard crash.
Furthermore, there is no backtrace nor log.
Sven
-- Pablo Tesone. tesonep@gmail.com
-- Pablo Tesone. tesonep@gmail.com
-- Pablo Tesone. tesonep@gmail.com
Hi Pablo, Thank you, I will test this soon. Is there any chance that there were also network changes in the Linux VM ? Perhaps also related to "detecting exceptions and out-of-band data". We keep on struggling with https://github.com/pharo-project/pharo/issues/9565 where it seems that the same code runs fine on Pharo 7 and 8, while it seems to fail on Pharo 9. Sven
On 21 Jul 2021, at 13:06, tesonep@gmail.com wrote:
I have done a new release with the fix for the socket connection. It was an issue in the kqueue code in OSX. It was wrongly detecting exceptions and out-of-band data. Please if you can update the VM and test it should be working.
Cheers Pablo
On Mon, Jul 19, 2021 at 1:13 PM Torsten Bergmann <astares@gmx.de> wrote: Hi Pablo,
yes - Sven is right on that it could be improved. Thanks for taking care of this important topic.
Cheers, Torsten
Gesendet: Montag, 19. Juli 2021 um 11:46 Uhr Von: "tesonep@gmail.com" <tesonep@gmail.com> An: "Pharo Development List" <pharo-dev@lists.pharo.org> Betreff: [Pharo-dev] Re: [Zdc]SocketStream>>#openConnectionToHostNamed:port: no longer signals am exception on macOS Thanks, yes it is true, the version name is a mess. We need to improve the version display. I will take note of that and I will fix it.
Cheers, Pablo
On Mon, Jul 19, 2021 at 11:08 AM Sven Van Caekenberghe <sven@stfx.eu> wrote: Hi Pablo,
prometheus:2021-07-16 sven$ ./pharo --version Pharo 9.0.0 built on Jul 6 2021 10:36:56 Compiler: 4.2.1 Compatible Apple LLVM 11.0.3 (clang-1103.0.32.29) Built from: ea8a3bfc - Commit: ea8a3bfc - Date: 2021-07-06 10:23:13 +0200 prometheus:2021-07-16 sven$ ./pharo Pharo.image printVersion [version] 'Pharo9.0.0' 'Pharo-9.0.0+build.1532.sha.e58ef49051bf06cad56a2dda174b8e091a45d5df (64 Bit)' prometheus:2021-07-16 sven$ ./pharo Pharo.image eval "(ZdcSocketStream openConnectionToHostNamed: 'localhost' port: 12335) nextPut: 0; close. #foo"
I have said this before, but the VM version is incomprehensible for normal people, why can't it just be something like 10.1 like the rest of the world ?
Also, for mere mortals it is impossible to find out if something changed about the VM, let alone what, and how that all relates to specific versions.
I know that you guys have a lot of work, and we are very grateful for it, but this is how it looks from the outside.
Thx,
Sven
On 19 Jul 2021, at 10:56, tesonep@gmail.com wrote:
Hi, with the new VM I could not reproduce it. I think it was related with the issue of the NetNameResolver. Which VM version are you using?
Thanks
On Sun, Jul 18, 2021 at 3:51 PM Sven Van Caekenberghe <sven@stfx.eu> wrote: Hi,
It seems that the following consistently crashes a recent/latest Pharo 9 image/vm on macOS:
(ZdcSocketStream openConnectionToHostNamed: 'localhost' port: 12335) nextPut: 0; close.
Command line, you can try it as follows:
$ ./pharo Pharo.image eval "(ZdcSocketStream openConnectionToHostNamed: 'localhost' port: 12335) nextPut: 0; close. #foo"
You can replace ZdcSocketStream by SocketStream, same result.
Before, trying to connect to a non-existing host:port resulted in a ConnectionTimedOut: Cannot connect to 127.0.0.1:12335.
Now, the code just returns and the bad stream is then used as if it is OK, which results in a hard crash.
Furthermore, there is no backtrace nor log.
Sven
-- Pablo Tesone. tesonep@gmail.com
-- Pablo Tesone. tesonep@gmail.com
-- Pablo Tesone. tesonep@gmail.com
I changed the event handling in osx and windows, Linux uses the same old code, but I don't discard there is a bug there or elsewhere ð I have been following this issue, I have it in my list. I have just started with the easier ones. On Wed, Jul 21, 2021, 13:37 Sven Van Caekenberghe <sven@stfx.eu> wrote:
Hi Pablo,
Thank you, I will test this soon.
Is there any chance that there were also network changes in the Linux VM ? Perhaps also related to "detecting exceptions and out-of-band data".
We keep on struggling with https://github.com/pharo-project/pharo/issues/9565 where it seems that the same code runs fine on Pharo 7 and 8, while it seems to fail on Pharo 9.
Sven
On 21 Jul 2021, at 13:06, tesonep@gmail.com wrote:
I have done a new release with the fix for the socket connection. It was an issue in the kqueue code in OSX. It was wrongly detecting exceptions and out-of-band data. Please if you can update the VM and test it should be working.
Cheers Pablo
On Mon, Jul 19, 2021 at 1:13 PM Torsten Bergmann <astares@gmx.de> wrote: Hi Pablo,
yes - Sven is right on that it could be improved. Thanks for taking care of this important topic.
Cheers, Torsten
Gesendet: Montag, 19. Juli 2021 um 11:46 Uhr Von: "tesonep@gmail.com" <tesonep@gmail.com> An: "Pharo Development List" <pharo-dev@lists.pharo.org> Betreff: [Pharo-dev] Re: [Zdc]SocketStream>>#openConnectionToHostNamed:port: no longer signals am exception on macOS Thanks, yes it is true, the version name is a mess. We need to improve the version display. I will take note of that and I will fix it.
Cheers, Pablo
On Mon, Jul 19, 2021 at 11:08 AM Sven Van Caekenberghe <sven@stfx.eu> wrote: Hi Pablo,
prometheus:2021-07-16 sven$ ./pharo --version Pharo 9.0.0 built on Jul 6 2021 10:36:56 Compiler: 4.2.1 Compatible Apple LLVM 11.0.3 (clang-1103.0.32.29) Built from: ea8a3bfc - Commit: ea8a3bfc - Date: 2021-07-06 10:23:13 +0200 prometheus:2021-07-16 sven$ ./pharo Pharo.image printVersion [version] 'Pharo9.0.0' 'Pharo-9.0.0+build.1532.sha.e58ef49051bf06cad56a2dda174b8e091a45d5df (64 Bit)' prometheus:2021-07-16 sven$ ./pharo Pharo.image eval "(ZdcSocketStream openConnectionToHostNamed: 'localhost' port: 12335) nextPut: 0; close. #foo"
I have said this before, but the VM version is incomprehensible for normal people, why can't it just be something like 10.1 like the rest of the world ?
Also, for mere mortals it is impossible to find out if something changed about the VM, let alone what, and how that all relates to specific versions.
I know that you guys have a lot of work, and we are very grateful for it, but this is how it looks from the outside.
Thx,
Sven
On 19 Jul 2021, at 10:56, tesonep@gmail.com wrote:
Hi, with the new VM I could not reproduce it. I think it was related with the issue of the NetNameResolver. Which VM version are you using?
Thanks
On Sun, Jul 18, 2021 at 3:51 PM Sven Van Caekenberghe <sven@stfx.eu> wrote: Hi,
It seems that the following consistently crashes a recent/latest Pharo 9 image/vm on macOS:
(ZdcSocketStream openConnectionToHostNamed: 'localhost' port: 12335) nextPut: 0; close.
Command line, you can try it as follows:
$ ./pharo Pharo.image eval "(ZdcSocketStream openConnectionToHostNamed: 'localhost' port: 12335) nextPut: 0; close. #foo"
You can replace ZdcSocketStream by SocketStream, same result.
Before, trying to connect to a non-existing host:port resulted in a ConnectionTimedOut: Cannot connect to 127.0.0.1:12335.
Now, the code just returns and the bad stream is then used as if it is OK, which results in a hard crash.
Furthermore, there is no backtrace nor log.
Sven
-- Pablo Tesone. tesonep@gmail.com
-- Pablo Tesone. tesonep@gmail.com
-- Pablo Tesone. tesonep@gmail.com
On 21 Jul 2021, at 13:37, Sven Van Caekenberghe <sven@stfx.eu> wrote:
Thank you, I will test this soon.
I can confirm that it now works again as before: opening a TCP connection to a non-existing host:port gives a NetworkError (ConnectionTimedOut cannot connect to host:port). Thanks again! Sven
participants (3)
-
Sven Van Caekenberghe -
tesonep@gmail.com -
Torsten Bergmann