[DRE-maint] Bug#881773: ruby2.5: FTBFS on hppa: recursive once test fails
John David Anglin
dave.anglin at bell.net
Mon Aug 12 20:14:09 BST 2019
On 2019-08-10 6:17 p.m., John David Anglin wrote:
> I tend to think get_main_stack should be modified to
> reflect that the main stack is growable. Possibly, the size obtained by get_main_stack should
> be modified based on the setting of one of the RUBY_THREAD_VM_STACK_SIZE defines.
The attached patches fix the build of ruby2.5 on hppa:
https://buildd.debian.org/status/fetch.php?pkg=ruby2.5&arch=hppa&ver=2.5.5-4%2Bb1&stamp=1565630907&raw=0
They might also fix build on kfreebsd-amd64 and kfreebsd-i386.
The second patch is needed to fix timeout waiting for join in two tests:
https://buildd.debian.org/status/fetch.php?pkg=ruby2.5&arch=hppa&ver=2.5.5-4%2Bb1&stamp=1565623940&raw=0
Fixing ruby2.5 fixes builds for ruby-ffi-yajl, ruby-json, and ruby-oj.
Regards,
Dave Anglin
--
John David Anglin dave.anglin at bell.net
-------------- next part --------------
Index: ruby2.5-2.5.5/thread_pthread.c
===================================================================
--- ruby2.5-2.5.5.orig/thread_pthread.c
+++ ruby2.5-2.5.5/thread_pthread.c
@@ -552,8 +552,17 @@ hpux_attr_getstackaddr(const pthread_att
# define MAINSTACKADDR_AVAILABLE 0
# endif
#endif
-#if MAINSTACKADDR_AVAILABLE && !defined(get_main_stack)
-# define get_main_stack(addr, size) get_stack(addr, size)
+#if MAINSTACKADDR_AVAILABLE
+static int get_stack(void **, size_t *);
+static int
+get_main_stack(void **addr, size_t *size)
+{
+ get_stack(addr, size);
+
+ /* Since main stack is growable, it may be too small. */
+ if (*size < RUBY_VM_THREAD_VM_STACK_SIZE)
+ *size = RUBY_VM_THREAD_VM_STACK_SIZE;
+}
#endif
#ifdef STACKADDR_AVAILABLE
@@ -573,6 +582,7 @@ get_stack(void **addr, size_t *size)
# ifdef HAVE_PTHREAD_ATTR_GETSTACK
CHECK_ERR(pthread_attr_getstack(&attr, addr, size));
STACK_DIR_UPPER((void)0, (void)(*addr = (char *)*addr + *size));
+ *size *= 4;
# else
CHECK_ERR(pthread_attr_getstackaddr(&attr, addr));
CHECK_ERR(pthread_attr_getstacksize(&attr, size));
-------------- next part --------------
Index: ruby2.5-2.5.5/test/openssl/utils.rb
===================================================================
--- ruby2.5-2.5.5.orig/test/openssl/utils.rb
+++ ruby2.5-2.5.5/test/openssl/utils.rb
@@ -266,8 +266,8 @@ class OpenSSL::SSLTestCase < OpenSSL::Te
pend = nil
threads.each { |th|
begin
- th.join(10) or
- th.raise(RuntimeError, "[start_server] thread did not exit in 10 secs")
+ th.join(100) or
+ th.raise(RuntimeError, "[start_server] thread did not exit in 100 secs")
rescue (defined?(MiniTest::Skip) ? MiniTest::Skip : Test::Unit::PendedError)
# MiniTest::Skip is for the Ruby tree
pend = $!
More information about the Pkg-ruby-extras-maintainers
mailing list