[#87847] undefined symbol: mjit_init_p — Leam Hall <leamhall@...>

I pulled Ruby trunk on 3 Jul and am now getting errors similar to the

10 messages 2018/07/07

[#88088] [Ruby trunk Misc#14937] [PATCH] thread_pthread: lazy-spawn timer-thread only on contention — normalperson@...

Issue #14937 has been reported by normalperson (Eric Wong).

9 messages 2018/07/24

[ruby-core:87750] [Ruby trunk Bug#14882][Third Party's Issue] OpenSSL::PKey::*.new does not resume after spurious signals

From: k@...
Date: 2018-07-02 14:32:24 UTC
List: ruby-core #87750
Issue #14882 has been updated by rhenium (Kazuki Yamaguchi).

Status changed from Open to Third Party's Issue

Thank you for the report. I made a GitHub PR that fixes the bug at the GitHub repo (add .patch to the URL for "git format-patch"-style diff):

https://github.com/ruby/openssl/pull/205

----------------------------------------
Bug #14882: OpenSSL::PKey::*.new does not resume after spurious signals
https://bugs.ruby-lang.org/issues/14882#change-72775

* Author: normalperson (Eric Wong)
* Status: Third Party's Issue
* Priority: Normal
* Assignee: rhenium (Kazuki Yamaguchi)
* Target version: 
* ruby -v: 
* Backport: 2.3: UNKNOWN, 2.4: UNKNOWN, 2.5: UNKNOWN
----------------------------------------
```
I noticed some OpenSSL::PKey::*.new failures while working on [Bug #14867].

MJIT will fork processes and when they die, SIGCHLD will trigger on most OSes.
I work around this problem in ext/openssl (and possibly other exts) by
avoiding signal_enqueue if no Ruby-level trap(:CHLD) handler is defined:

(in signal.c::sighandler):

        /* avoid spurious wakeup in main thread iff nobody uses trap(:CHLD) */
        if (vm && ACCESS_ONCE(VALUE, vm->trap_list.cmd[sig])) {
            signal_enque(sig);
        }

However, other signals may be received that do not intend to permanently
stop the operation.

Attached is a script which demonstrates the problem.

When performing normal interruptible operations (e.g. IO#read),
Ruby automatically retries on EINTR, so I think OpenSSL::PKey::*.new
should do the same instead of failing completely.


I do not use proprietary messaging systems, so please forward to
the other bug tracker if you don't want to use this one.  Thanks.
```


---Files--------------------------------
ossl_pkey_intr.rb (390 Bytes)


-- 
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>

In This Thread

Prev Next