[Pharo-dev] Re: Serious NetNameResolver regression
You're right Sven. The code in the image looks exactly the same betwen Pharo 8 and 9 but the behavior is different. On Thu, Jul 15, 2021 at 3:40 PM Sven Van Caekenberghe wrote: > > > > On 15 Jul 2021, at 16:42, Gabriel Cotelli wrote: > > > > Just doing > > NetNameResolver primStartLookupOfName:'unknown-stfx.eu > ';primNameLookupResult > > produces the bogus result. And both methods only call primitives in the > SocketPlugin. So I think that no image code is responsible for the behavior > change. > > I don't know, but your example is not good. You have to wait else the > result is always 0.0.0.0 > > Pharo 7 > > NetNameResolver primStartLookupOfName:'unknown-stfx.eu'; > waitForCompletionUntil: 5 > > false (signal exception) > > Pharo 9 > > NetNameResolver primStartLookupOfName:'unknown-stfx.eu'; > waitForCompletionUntil: 5 > > true (bogus 0.0.0.0 result) > > > On Thu, Jul 15, 2021 at 11:36 AM Sven Van Caekenberghe > wrote: > > Hi, > > > > It seems that we have a serious NetNameResolver regression: instead of > signalling an exception, a bogus value is returned. > > > > Pharo 7: > > > > [ NetNameResolver addressForName: 'unknown-stfx.eu' timeout: 10 ] on: > NameLookupFailure do: [ :exception | exception ]. > > > > "NameLookupFailure: cannot resolve 'unknown-stfx.eu'" > > > > Pharo 9: > > > > [ NetNameResolver addressForName: 'unknown-stfx.eu' timeout: 10 ] on: > NameLookupFailure do: [ :exception | exception ]. > > > > "0.0.0.0" > > > > This is bad. What is even worse is that the following kills your image > without leaving any trace (on macOS): > > > > ZnClient new get: 'http://unknown-stfx.eu'. > > > > Because it tries to connect to 0.0.0.0 > > > > On linux, at least there is a backtrace: > > > > sven@stfx-1:~/pharo$ rlwrap ./pharo reddit.image NeoConsole repl > > NeoConsole > Pharo-9.0.0+build.1528.sha.29269ecfac2cbf6a56dfee232b7d3355e5cb77bd (64 Bit) > > pharo> NetNameResolver addressForName: 'unknown-stfx.eu' timeout: 10. > > > > 0.0.0.0 > > pharo> ZnClient new get: 'http://unknown-stfx.eu'. > > > > ConnectionTimedOut: Cannot connect to 0.0.0.0:80 > > [ConnectionTimedOut signal: 'Cannot connect to ' > > , (NetNameResolver > stringFromAddress: hostAddress) , ':' , port asString] in > Socket>>connectTo:port:waitForConnectionFor: > > Receiver: a Socket[unconnected] > > Arguments and temporary variables: > > hostAddress:0.0.0.0 > > port: 80 > > timeout:30 > > Receiver's instance variables: > > semaphore: a Semaphore() > > socketHandle: #[198 113 243 96 0 0 0 0 240 65 61 2 0 0 > 0 0] > > readSemaphore: a Semaphore() > > writeSemaphore: a Semaphore() > > > > Socket>>waitForConnectionFor:ifTimedOut: > > Socket>>connectTo:port:waitForConnectionFor: > > ZdcSocketStream(ZdcAbstractSocketStream)>>socketConnectTo:port: > > ZdcSocketStream(ZdcSimpleSocketStream)>>connectTo:port: > > ZdcSocketStream class(ZdcSimpleSocketStream > class)>>openConnectionToHost:port:timeout: > > ZnNetworkingUtils>>socketStreamToUrlDirectly: > > ZnNetworkingUtils>>socketStreamToUrl: > > ZnNetworkingUtils class>>socketStreamToUrl: > > > > I had a quick look at changes to Network-Kernel but had no luck yet. > > > > Because of this running Zinc HTTP Components tests on macOS Pharo 9 also > kills the image (ZnClientTest>>#testIfFailNonExistingHost). > > > > Of course, NetNameResolverTest does not do enough. > > > > Sven >
[Pharo-dev] Re: Serious NetNameResolver regression
> On 15 Jul 2021, at 16:42, Gabriel Cotelli wrote: > > Just doing > NetNameResolver primStartLookupOfName:'unknown-stfx.eu';primNameLookupResult > produces the bogus result. And both methods only call primitives in the > SocketPlugin. So I think that no image code is responsible for the behavior > change. I don't know, but your example is not good. You have to wait else the result is always 0.0.0.0 Pharo 7 NetNameResolver primStartLookupOfName:'unknown-stfx.eu'; waitForCompletionUntil: 5 false (signal exception) Pharo 9 NetNameResolver primStartLookupOfName:'unknown-stfx.eu'; waitForCompletionUntil: 5 true (bogus 0.0.0.0 result) > On Thu, Jul 15, 2021 at 11:36 AM Sven Van Caekenberghe wrote: > Hi, > > It seems that we have a serious NetNameResolver regression: instead of > signalling an exception, a bogus value is returned. > > Pharo 7: > > [ NetNameResolver addressForName: 'unknown-stfx.eu' timeout: 10 ] on: > NameLookupFailure do: [ :exception | exception ]. > > "NameLookupFailure: cannot resolve 'unknown-stfx.eu'" > > Pharo 9: > > [ NetNameResolver addressForName: 'unknown-stfx.eu' timeout: 10 ] on: > NameLookupFailure do: [ :exception | exception ]. > > "0.0.0.0" > > This is bad. What is even worse is that the following kills your image > without leaving any trace (on macOS): > > ZnClient new get: 'http://unknown-stfx.eu'. > > Because it tries to connect to 0.0.0.0 > > On linux, at least there is a backtrace: > > sven@stfx-1:~/pharo$ rlwrap ./pharo reddit.image NeoConsole repl > NeoConsole > Pharo-9.0.0+build.1528.sha.29269ecfac2cbf6a56dfee232b7d3355e5cb77bd (64 Bit) > pharo> NetNameResolver addressForName: 'unknown-stfx.eu' timeout: 10. > > 0.0.0.0 > pharo> ZnClient new get: 'http://unknown-stfx.eu'. > > ConnectionTimedOut: Cannot connect to 0.0.0.0:80 > [ConnectionTimedOut signal: 'Cannot connect to ' > , (NetNameResolver stringFromAddress: > hostAddress) , ':' , port asString] in > Socket>>connectTo:port:waitForConnectionFor: > Receiver: a Socket[unconnected] > Arguments and temporary variables: > hostAddress:0.0.0.0 > port: 80 > timeout:30 > Receiver's instance variables: > semaphore: a Semaphore() > socketHandle: #[198 113 243 96 0 0 0 0 240 65 61 2 0 0 0 0] > readSemaphore: a Semaphore() > writeSemaphore: a Semaphore() > > Socket>>waitForConnectionFor:ifTimedOut: > Socket>>connectTo:port:waitForConnectionFor: > ZdcSocketStream(ZdcAbstractSocketStream)>>socketConnectTo:port: > ZdcSocketStream(ZdcSimpleSocketStream)>>connectTo:port: > ZdcSocketStream class(ZdcSimpleSocketStream > class)>>openConnectionToHost:port:timeout: > ZnNetworkingUtils>>socketStreamToUrlDirectly: > ZnNetworkingUtils>>socketStreamToUrl: > ZnNetworkingUtils class>>socketStreamToUrl: > > I had a quick look at changes to Network-Kernel but had no luck yet. > > Because of this running Zinc HTTP Components tests on macOS Pharo 9 also > kills the image (ZnClientTest>>#testIfFailNonExistingHost). > > Of course, NetNameResolverTest does not do enough. > > Sven
[Pharo-dev] This week (28/2021) on the Pharo Issue Tracker
We merged 15 Pull Requests this week and closed 14 issue tracker entries. And we released Phaoro9! https://pharo.org/news/pharo9-released - Harvest latest changes from STON #9579 https://github.com/pharo-project/pharo/pull/9579 - fix getting help page #9585 https://github.com/pharo-project/pharo/pull/9585 - 9567-Traits-Super-sends-in-blocks-lead-to-VM-crash #9568 https://github.com/pharo-project/pharo/pull/9568 - Enable display empty slots by default #9581 https://github.com/pharo-project/pharo/pull/9581 - 9495-Color-selection-dialog-broken #9575 https://github.com/pharo-project/pharo/pull/9575 - 9571-Using-Clipboard-Tools-does-not-work-aka-Virtual-Paste #9572 https://github.com/pharo-project/pharo/pull/9572 - Fix #9577: Typing in the help browser DNU #9578 https://github.com/pharo-project/pharo/pull/9578 - 9555-Disable-deprecate-menuItem #9569 https://github.com/pharo-project/pharo/pull/9569 - Fixed the Undo and Redo in the RubTextEditor #9544 https://github.com/pharo-project/pharo/pull/9544 - Improve the workaround to not show the undeclared fix menu when in c… #9563 https://github.com/pharo-project/pharo/pull/9563 Cleanups - deprecate glamour and gt tools #9589 https://github.com/pharo-project/pharo/pull/9589 - fixing versions of Spec and NewTools #9584 https://github.com/pharo-project/pharo/pull/9584 - Updating Iceberg version to a relesed one #9583 https://github.com/pharo-project/pharo/pull/9583 - updating-changelog-to-p9 #9559 https://github.com/pharo-project/pharo/pull/9559 Pharo10 === - Fixes: #9552 and #9553 #9554 https://github.com/pharo-project/pharo/pull/9554
[Pharo-dev] Re: Serious NetNameResolver regression
Just doing NetNameResolver primStartLookupOfName:'unknown-stfx.eu';primNameLookupResult produces the bogus result. And both methods only call primitives in the SocketPlugin. So I think that no image code is responsible for the behavior change. On Thu, Jul 15, 2021 at 11:36 AM Sven Van Caekenberghe wrote: > Hi, > > It seems that we have a serious NetNameResolver regression: instead of > signalling an exception, a bogus value is returned. > > Pharo 7: > > [ NetNameResolver addressForName: 'unknown-stfx.eu' timeout: 10 ] on: > NameLookupFailure do: [ :exception | exception ]. > > "NameLookupFailure: cannot resolve 'unknown-stfx.eu'" > > Pharo 9: > > [ NetNameResolver addressForName: 'unknown-stfx.eu' timeout: 10 ] on: > NameLookupFailure do: [ :exception | exception ]. > > "0.0.0.0" > > This is bad. What is even worse is that the following kills your image > without leaving any trace (on macOS): > > ZnClient new get: 'http://unknown-stfx.eu'. > > Because it tries to connect to 0.0.0.0 > > On linux, at least there is a backtrace: > > sven@stfx-1:~/pharo$ rlwrap ./pharo reddit.image NeoConsole repl > NeoConsole > Pharo-9.0.0+build.1528.sha.29269ecfac2cbf6a56dfee232b7d3355e5cb77bd (64 Bit) > pharo> NetNameResolver addressForName: 'unknown-stfx.eu' timeout: 10. > > 0.0.0.0 > pharo> ZnClient new get: 'http://unknown-stfx.eu'. > > ConnectionTimedOut: Cannot connect to 0.0.0.0:80 > [ConnectionTimedOut signal: 'Cannot connect to ' > , (NetNameResolver > stringFromAddress: hostAddress) , ':' , port asString] in > Socket>>connectTo:port:waitForConnectionFor: > Receiver: a Socket[unconnected] > Arguments and temporary variables: > hostAddress:0.0.0.0 > port: 80 > timeout:30 > Receiver's instance variables: > semaphore: a Semaphore() > socketHandle: #[198 113 243 96 0 0 0 0 240 65 61 2 0 0 0 > 0] > readSemaphore: a Semaphore() > writeSemaphore: a Semaphore() > > Socket>>waitForConnectionFor:ifTimedOut: > Socket>>connectTo:port:waitForConnectionFor: > ZdcSocketStream(ZdcAbstractSocketStream)>>socketConnectTo:port: > ZdcSocketStream(ZdcSimpleSocketStream)>>connectTo:port: > ZdcSocketStream class(ZdcSimpleSocketStream > class)>>openConnectionToHost:port:timeout: > ZnNetworkingUtils>>socketStreamToUrlDirectly: > ZnNetworkingUtils>>socketStreamToUrl: > ZnNetworkingUtils class>>socketStreamToUrl: > > I had a quick look at changes to Network-Kernel but had no luck yet. > > Because of this running Zinc HTTP Components tests on macOS Pharo 9 also > kills the image (ZnClientTest>>#testIfFailNonExistingHost). > > Of course, NetNameResolverTest does not do enough. > > Sven >
[Pharo-dev] Re: [ANN] Pharo 9 released!
Yey! Big thank you to the core team and all the community! Noury On Jul 15 2021, at 11:14 am, Esteban Lorenzano wrote: > Dear World and dynamic language lovers: > > The time has come for Pharo 9 (https://pharo.org/) ! > Pharo is a pure object-oriented programming language and a powerful > environment, focused on simplicity and immediate feedback. > > Here are the key features of Pharo 9: > Full redesign of the Spec UI framework (new logic, application, style, GTK3 > back-end) > New tools: > > new playground, > > new object centric inspector, > > new object centric debugger. > > better and new Refactorings > > class comments are now written in Microdown format (Markdown compatible) > > classes now can be defined using a "fluid" api (Preview) > > > > New completion framework that adapts better to edition contexts and is > customizable > > Fast universal non-blocking FFI which now uses libFFI as backend. > > Pharo now supports Windows, OSX, Linux (Ubuntu, Debian, Fedora, openSUSE, > Arch, Raspbian) and multiple architectures (Intel/ARM 32/64bits). > > Virtual Machine > > Idle VM > > Support for ARM 64bits > > Support for Apple M1 > > More than 3000 tests > > Built for Ubuntu 18.04, 19.04, 20.04, 21.04, 21.10; Debian 9, 10, Testing; > Fedora 32, 32, 34; openSUSE 15.1, 15.2, Tumbleweed; Manjaro; Arch > > > > Uses SDL 2.0 as back-end by default. It supports extended event handling, > including trackpad support. > > General speed up due to compiler optimisations and UI simplification. > > And many, many more tests. > > > > These are just the more prominent highlights, but the details are just as > important. We have closed a massive amount of issues: around 1400 issues and > 2150 pull requests. > A more extended changelog can be found at > https://github.com/pharo-project/pharo-changelogs/blob/master/Pharo90ChangeLogs.md. > While the technical improvements are significant, still the most impressive > fact is that the new code that got in the main Pharo 9 image was contributed > by more than 90 people. > Pharo is more than code. It is an exciting project involving a great > community. > We thank all the contributors to this release: > Aaron Bieber, Ackerley Tng, Alban Benmouffek, Ale Cossio, Alexandre Bergel, > Alistair Grant, Allex Oliveira, Angela Chia-Ling, Arturo Zambrano, Asbathou > Biyalou-Sama, Ben Coman, Benoit Verhaegue, Carlo Teixeira, Carlos Lopez, > Carolina Hernandez, Charles A. Monteiro, Christoph Thiede, Christophe > Demarey, Clotilde Toullec, Cyril Ferlicot, Damien Pollet, Daniel Aparicio, > David Bajger, David Sánchez i Gregori, Denis Kudriashov, Ellis Harris, Eric > Brandwein, Eric Gade, Erik Stel, ErikOnBike, Esteban Lorenzano, Esteban > Villalobos, Evelyn Cusi Lopez, Evelyn Cusi Lopez, Ewan Dawson, Francis > Pineda, Francis Pineda, Gabriel Omar Cotelli, Geraldine Galindo, Giovanni > Corriga, Guille Polito, Himanshu jld, Johan Brichau, Jonathan van Alteren, > Jordan Montt, Julien Delplanque, Kamil Kukura, Kasper Østerbye, Kurt Kilpela, > Laurine Dargaud, Marco Rimoldi, Marcus Denker, Martin Dias, Martin McClure, > Massimo Nocentini, Max Leske, Maximilian Ignacio Willembrinck Santander, > Milton Mamani Torres, Moussa Saker, Myroslava Romaniuk, Nicolas Anquetil, > Norbert Hartl, Nour Djihan, Oleksandr Zaitsev, Pablo Sánchez Rodríguez, Pablo > Tesone, Pavel Krivanek, Philippe Lesueur, Pierre Misse, Rakshit P., Rob > Sayers, Roland Bernard, Ronie Salgado, Sean DeNigris, Sebastian Jordan > Montaño, Serge Stinckwich, Stephan Eggermont, Steven Costiou, Stéphane > Ducasse, Sven Van Caekenberghe, Thomas Dupriez, Théo Lanord, Théo Rogliano, > Todd Blanchard, Torsten Bergmann, Vincent Blondeau, Wéslleymberg Lisboa. > > > (If you contributed with Pharo 9 development in any way and we missed your > name, please send us an email and we will add you). > Enjoy! > The Pharo Team > Try Pharo: http://pharo.org/download (https://pharo.org/download) > Learn Pharo: http://pharo.org/documentation (https://pharo.org/documentation)
[Pharo-dev] Serious NetNameResolver regression
Hi, It seems that we have a serious NetNameResolver regression: instead of signalling an exception, a bogus value is returned. Pharo 7: [ NetNameResolver addressForName: 'unknown-stfx.eu' timeout: 10 ] on: NameLookupFailure do: [ :exception | exception ]. "NameLookupFailure: cannot resolve 'unknown-stfx.eu'" Pharo 9: [ NetNameResolver addressForName: 'unknown-stfx.eu' timeout: 10 ] on: NameLookupFailure do: [ :exception | exception ]. "0.0.0.0" This is bad. What is even worse is that the following kills your image without leaving any trace (on macOS): ZnClient new get: 'http://unknown-stfx.eu'. Because it tries to connect to 0.0.0.0 On linux, at least there is a backtrace: sven@stfx-1:~/pharo$ rlwrap ./pharo reddit.image NeoConsole repl NeoConsole Pharo-9.0.0+build.1528.sha.29269ecfac2cbf6a56dfee232b7d3355e5cb77bd (64 Bit) pharo> NetNameResolver addressForName: 'unknown-stfx.eu' timeout: 10. 0.0.0.0 pharo> ZnClient new get: 'http://unknown-stfx.eu'. ConnectionTimedOut: Cannot connect to 0.0.0.0:80 [ConnectionTimedOut signal: 'Cannot connect to ' , (NetNameResolver stringFromAddress: hostAddress) , ':' , port asString] in Socket>>connectTo:port:waitForConnectionFor: Receiver: a Socket[unconnected] Arguments and temporary variables: hostAddress:0.0.0.0 port: 80 timeout:30 Receiver's instance variables: semaphore: a Semaphore() socketHandle: #[198 113 243 96 0 0 0 0 240 65 61 2 0 0 0 0] readSemaphore: a Semaphore() writeSemaphore: a Semaphore() Socket>>waitForConnectionFor:ifTimedOut: Socket>>connectTo:port:waitForConnectionFor: ZdcSocketStream(ZdcAbstractSocketStream)>>socketConnectTo:port: ZdcSocketStream(ZdcSimpleSocketStream)>>connectTo:port: ZdcSocketStream class(ZdcSimpleSocketStream class)>>openConnectionToHost:port:timeout: ZnNetworkingUtils>>socketStreamToUrlDirectly: ZnNetworkingUtils>>socketStreamToUrl: ZnNetworkingUtils class>>socketStreamToUrl: I had a quick look at changes to Network-Kernel but had no luck yet. Because of this running Zinc HTTP Components tests on macOS Pharo 9 also kills the image (ZnClientTest>>#testIfFailNonExistingHost). Of course, NetNameResolverTest does not do enough. Sven
[Pharo-dev] [ANN] Pharo 9 released!
Dear World and dynamic language lovers: The time has come for Pharo 9 (https://pharo.org/) ! Pharo is a pure object-oriented programming language and a powerful environment, focused on simplicity and immediate feedback. Here are the key features of Pharo 9: Full redesign of the Spec UI framework (new logic, application, style, GTK3 back-end) New tools: new playground, new object centric inspector, new object centric debugger. better and new Refactorings class comments are now written in Microdown format (Markdown compatible) classes now can be defined using a "fluid" api (Preview) New completion framework that adapts better to edition contexts and is customizable Fast universal non-blocking FFI which now uses libFFI as backend. Pharo now supports Windows, OSX, Linux (Ubuntu, Debian, Fedora, openSUSE, Arch, Raspbian) and multiple architectures (Intel/ARM 32/64bits). Virtual Machine Idle VM Support for ARM 64bits Support for Apple M1 More than 3000 tests Built for Ubuntu 18.04, 19.04, 20.04, 21.04, 21.10; Debian 9, 10, Testing; Fedora 32, 32, 34; openSUSE 15.1, 15.2, Tumbleweed; Manjaro; Arch Uses SDL 2.0 as back-end by default. It supports extended event handling, including trackpad support. General speed up due to compiler optimisations and UI simplification. And many, many more tests. These are just the more prominent highlights, but the details are just as important. We have closed a massive amount of issues: around 1400 issues and 2150 pull requests. A more extended changelog can be found at https://github.com/pharo-project/pharo-changelogs/blob/master/Pharo90ChangeLogs.md. While the technical improvements are significant, still the most impressive fact is that the new code that got in the main Pharo 9 image was contributed by more than 90 people. Pharo is more than code. It is an exciting project involving a great community. We thank all the contributors to this release: Aaron Bieber, Ackerley Tng, Alban Benmouffek, Ale Cossio, Alexandre Bergel, Alistair Grant, Allex Oliveira, Angela Chia-Ling, Arturo Zambrano, Asbathou Biyalou-Sama, Ben Coman, Benoit Verhaegue, Carlo Teixeira, Carlos Lopez, Carolina Hernandez, Charles A. Monteiro, Christoph Thiede, Christophe Demarey, Clotilde Toullec, Cyril Ferlicot, Damien Pollet, Daniel Aparicio, David Bajger, David Sánchez i Gregori, Denis Kudriashov, Ellis Harris, Eric Brandwein, Eric Gade, Erik Stel, ErikOnBike, Esteban Lorenzano, Esteban Villalobos, Evelyn Cusi Lopez, Evelyn Cusi Lopez, Ewan Dawson, Francis Pineda, Francis Pineda, Gabriel Omar Cotelli, Geraldine Galindo, Giovanni Corriga, Guille Polito, Himanshu jld, Johan Brichau, Jonathan van Alteren, Jordan Montt, Julien Delplanque, Kamil Kukura, Kasper Østerbye, Kurt Kilpela, Laurine Dargaud, Marco Rimoldi, Marcus Denker, Martin Dias, Martin McClure, Massimo Nocentini, Max Leske, Maximilian Ignacio Willembrinck Santander, Milton Mamani Torres, Moussa Saker, Myroslava Romaniuk, Nicolas Anquetil, Norbert Hartl, Nour Djihan, Oleksandr Zaitsev, Pablo Sánchez Rodríguez, Pablo Tesone, Pavel Krivanek, Philippe Lesueur, Pierre Misse, Rakshit P., Rob Sayers, Roland Bernard, Ronie Salgado, Sean DeNigris, Sebastian Jordan Montaño, Serge Stinckwich, Stephan Eggermont, Steven Costiou, Stéphane Ducasse, Sven Van Caekenberghe, Thomas Dupriez, Théo Lanord, Théo Rogliano, Todd Blanchard, Torsten Bergmann, Vincent Blondeau, Wéslleymberg Lisboa. (If you contributed with Pharo 9 development in any way and we missed your name, please send us an email and we will add you). Enjoy! The Pharo Team Try Pharo: http://pharo.org/download (https://pharo.org/download) Learn Pharo: http://pharo.org/documentation (https://pharo.org/documentation)