[#103241] [Ruby master Bug#17777] 2.6.7 fails to build on macOS: implicit declaration of function 'rb_native_mutex_destroy' is invalid in C99 — eregontp@...
Issue #17777 has been reported by Eregon (Benoit Daloze).
17 messages
2021/04/05
[#103305] [Ruby master Feature#17785] Allow named parameters to be keywords — marcandre-ruby-core@...
Issue #17785 has been reported by marcandre (Marc-Andre Lafortune).
21 messages
2021/04/08
[#103342] [Ruby master Feature#17790] Have a way to clear a String without resetting its capacity — jean.boussier@...
Issue #17790 has been reported by byroot (Jean Boussier).
14 messages
2021/04/09
[#103388] [ANN] Multi-factor Authentication of bugs.ruby-lang.org — SHIBATA Hiroshi <hsbt@...>
Hello,
5 messages
2021/04/12
[#103414] Re: [ANN] Multi-factor Authentication of bugs.ruby-lang.org
— Martin J. Dürst <duerst@...>
2021/04/13
Is there a way to use this multi-factor authentication for (like me)
[#103547] List of CI sites to check — Martin J. Dürst <duerst@...>
Hello everybody,
4 messages
2021/04/22
[#103596] [Ruby master Feature#17830] Add Integer#previous and Integer#prev — rafasoaresms@...
Issue #17830 has been reported by rafasoares (Rafael Soares).
9 messages
2021/04/26
[ruby-core:103511] [Ruby master Bug#17813] rb_funcall() may reset the latest socket error unexpectedlly since Ruby 3.0.0
From:
kenhys@...
Date:
2021-04-19 09:40:05 UTC
List:
ruby-core #103511
Issue #17813 has been reported by kenhys (Kentaro Hayashi). ---------------------------------------- Bug #17813: rb_funcall() may reset the latest socket error unexpectedlly since Ruby 3.0.0 https://bugs.ruby-lang.org/issues/17813 * Author: kenhys (Kentaro Hayashi) * Status: Open * Priority: Normal * ruby -v: ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [x64-mingw32] * Backport: 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN ---------------------------------------- ### The problem It seems that when rb_funcall() is called, the socket error is reset. This behavior is introduced since Ruby 3.0.0 on Windows. With this incompatible change, it fails to get WSAGetLastError correctly even though the previous funciton call fails. Does it intentional change? ### The actual situation This incompatible behavior is found with the following Fiddle example. ``` module WinSock require 'fiddle/import' extend Fiddle::Importer dlload 'ws2_32.dll' extern 'int bind(int, void *, int)' extern 'int WSAGetLastError(void)' end p WinSock.bind(0, nil, 0) p WinSock.WSAGetLastError ``` With Ruby 3.0 (ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [x64-mingw32]), `WinSock.bind(0, nil, 0)` should be failed, thus it returns -1. (expected) `WinSock.WSAGetLastError` should return 10038 (WSAENOTSOCK) in this case, but returns 0. (unexpected) With Ruby 2.7 (ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x64-mingw32]), `WinSock.bind(0, nil, 0)` returns -1, (expected) `WinSock.WSAGetLastError` return 10038 (WSAENOTSOCK). (expected) Thus, the use case such as checking bind result and report socket related error via (WSAGetLastError) doesn't work as expected with Ruby 3.0 (Windows). ### The expected status If this change is introduced by intendedly, no need to change ruby itself. If not, it may be better to be fixed. ### Additional Information I've reported this issue to Fiddle, then since Fiddle 1.0.8, Fiddle.win32_last_socket_error is implemented as a workaround. Unexpected error code with WSAGetLastError even though the previous function calll was failed https://github.com/ruby/fiddle/issues/72 -- https://bugs.ruby-lang.org/ Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>