filestack / filestack-rails

Official Ruby on Rails plugin for Filestack File Picker that makes it easy to add powerful file uploading and transformation capabilities to any web or mobile application.
https://www.filestack.com
Apache License 2.0
223 stars 101 forks source link

Segmentation fault on utils/multipart_upload_utils.rb for MacOS Apple Silicon. Processor M1 #248

Open acdesouza opened 5 months ago

acdesouza commented 5 months ago

The error happens when running a test. But, only when using Rails parallel test with process.

Running this test alone I can't reproduce the error.

/Users/acdesouza/.rvm/gems/ruby-3.2.3/gems/ethon-0.15.0/lib/ethon/curl.rb:61: [BUG] Segmentation fault at 0x0000000000000110
ruby 3.2.3 (2024-01-18 revision 52bb2ac0a6) [arm64-darwin23]

[...]

-- Control frame information -----------------------------------------------
c:0138 p:---- s:0905 e:000904 CFUNC  :global_init
c:0137 p:0014 s:0900 e:000899 BLOCK  /Users/ac/.rvm/gems/ruby-3.2.3/gems/ethon-0.16.0/lib/ethon/curl.rb:61 [FINISH]
c:0136 p:---- s:0897 e:000896 CFUNC  :synchronize
c:0135 p:0006 s:0893 e:000892 METHOD /Users/ac/.rvm/gems/ruby-3.2.3/gems/ethon-0.16.0/lib/ethon/curl.rb:59
c:0134 p:0008 s:0889 e:000888 METHOD /Users/ac/.rvm/gems/ruby-3.2.3/gems/ethon-0.16.0/lib/ethon/easy.rb:219 [FINISH]
c:0133 p:---- s:0884 e:000883 CFUNC  :new
c:0132 p:0014 s:0880 e:000879 METHOD /Users/ac/.rvm/gems/ruby-3.2.3/gems/typhoeus-1.4.1/lib/typhoeus/pool.rb:43
c:0131 p:0011 s:0876 e:000875 METHOD /Users/ac/.rvm/gems/ruby-3.2.3/gems/typhoeus-1.4.1/lib/typhoeus/easy_factory.rb:70
c:0130 p:0014 s:0872 e:000871 METHOD /Users/ac/.rvm/gems/ruby-3.2.3/gems/typhoeus-1.4.1/lib/typhoeus/easy_factory.rb:83
c:0129 p:0007 s:0865 e:000864 METHOD /Users/ac/.rvm/gems/ruby-3.2.3/gems/typhoeus-1.4.1/lib/typhoeus/request.rb:130
c:0128 p:0006 s:0859 e:000857 METHOD /Users/ac/.rvm/gems/ruby-3.2.3/gems/webmock-3.17.1/lib/webmock/http_lib_adapters/typhoeus_hydra_adapter.rb:54
c:0127 p:0025 s:0849 e:000848 BLOCK  /Users/ac/.rvm/gems/ruby-3.2.3/gems/webmock-3.17.1/lib/webmock/http_lib_adapters/typhoeus_hydra_adapter.rb:147
c:0126 p:0006 s:0841 e:000840 BLOCK  /Users/ac/.rvm/gems/ruby-3.2.3/gems/typhoeus-1.4.1/lib/typhoeus/request/before.rb:21 [FINISH]
c:0125 p:---- s:0836 e:000835 CFUNC  :each
c:0124 p:0007 s:0832 e:000831 METHOD /Users/ac/.rvm/gems/ruby-3.2.3/gems/typhoeus-1.4.1/lib/typhoeus/request/before.rb:20
c:0123 p:0018 s:0828 e:000827 METHOD /Users/ac/.rvm/gems/ruby-3.2.3/gems/typhoeus-1.4.1/lib/typhoeus/request/actions.rb:38
c:0122 p:0093 s:0822 e:000821 METHOD /Users/ac/.rvm/gems/ruby-3.2.3/gems/filestack-2.9.7/lib/filestack/utils/multipart_upload_utils.rb:66
c:0121 p:0052 s:0808 e:000807 METHOD /Users/ac/.rvm/gems/ruby-3.2.3/gems/filestack-2.9.7/lib/filestack/utils/multipart_upload_utils.rb:247
c:0120 p:0084 s:0788 e:000787 METHOD /Users/ac/.rvm/gems/ruby-3.2.3/gems/filestack-2.9.7/lib/filestack/models/filestack_client.rb:42

MacOS: 14.4.1 (23E224)

Ruby:

$ ruby --version
ruby 3.2.3 (2024-01-18 revision 52bb2ac0a6) [arm64-darwin23]

openssl:

$ openssl --version
OpenSSL 3.2.1 30 Jan 2024 (Library: OpenSSL 3.2.1 30 Jan 2024) 

cURL installed after installing openssl@3

$ curl --version
curl 8.7.1 (aarch64-apple-darwin23.4.0) libcurl/8.7.1 (SecureTransport) OpenSSL/3.2.1 zlib/1.2.12 brotli/1.1.0 zstd/1.5.6 libidn2/2.3.7 libssh2/1.11.0 nghttp2/1.61.0 librtmp/2.3 OpenLDAP/2.6.7
Release-Date: 2024-03-27
Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns ldap ldaps mqtt pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz MultiSSL NTLM SPNEGO SSL threadsafe TLS-SRP UnixSockets zstd

libcurl:

$ file /opt/homebrew/opt/curl/lib/libcurl.4.dylib
/opt/homebrew/opt/curl/lib/libcurl.4.dylib: Mach-O 64-bit dynamically linked shared library arm64

https://github.com/typhoeus/typhoeus/issues/452#issuecomment-2050432859