When I try to open a page served by the latest falcon 0.19.3 under truffleruby 1.0.0.rc9. I got this error:
$ NIO4R_PURE=true falcon --verbose serve --threaded
D, [2018-11-06T22:26:52.101000 #39332] DEBUG -- Async::IO::Socket: Binding to #<Addrinfo: [::1]:9292 TCP>
D, [2018-11-06T22:26:52.136000 #39332] DEBUG -- Async::IO::Socket: Binding to #<Addrinfo: 127.0.0.1:9292 TCP>
D, [2018-11-06T22:26:52.182000 #39332] DEBUG -- <Async::Reactor:0x74e stopped=false>: Exiting run-loop because finished.
I, [2018-11-06T22:26:52.199000 #39332] INFO -- : Falcon taking flight! Binding to #<Falcon::Endpoint https://localhost:9292/ {}> [Async::Container::Threaded with concurrency: 4]
I, [2018-11-06T22:26:52.214000 #39332] INFO -- : Send `kill -USR1 39332` for detailed status :)
I, [2018-11-06T22:26:52.215000 #39332] INFO -- : Send `kill -USR1 39332` for detailed status :)
I, [2018-11-06T22:26:52.215000 #39332] INFO -- : Send `kill -USR1 39332` for detailed status :)
I, [2018-11-06T22:26:52.214000 #39332] INFO -- : Send `kill -USR1 39332` for detailed status :)
java.lang.IllegalStateException: Cannot convert LLVMTypedForeignObject+0x0 to LLVMNativePointer
Now config.ru has to exist => https://github.com/socketry/falcon/issues/33#issuecomment-436413454
config.ru:
run lambda {|env| [200, {}, ["Hello World"]]}
The config just needs to end in .ru otherwise it triggers some weird behaviour from rack.
The "Hello World" config worked fine for me: https://github.com/socketry/falcon/tree/master/examples/hello
What example did you run which caused such an error?
@ioquatix see the code in the report. I use the same like you, just without #!/… at the beginning
Oh, right, sorry, I didn't read it clearly and I assumed that was already working.
What rc are you on?
Do you have a better backtrace as to what is causing the error?
How about running falcon specs?
I have truffleruby 1.0.0.rc9
It's everything what I got. There is no additional backtrace unfortunately.
When I tried the specs, they froze here
$ rspec
~/.gem/truffleruby/2.4.4/gems/async-io-1.16.3/lib/async/io/socket.rb:97: warning: shadowing outer local variable - task
~/.gem/truffleruby/2.4.4/gems/async-io-1.16.3/lib/async/io/socket.rb:180: warning: shadowing outer local variable - task
~/dev/bugs/truffleruby/falcon/lib/falcon/verbose.rb:52: warning: shadowing outer local variable - statistics
~/.gem/truffleruby/2.4.4/gems/async-io-1.16.3/lib/async/io/shared_endpoint.rb:29: warning: shadowing outer local variable - endpoint
~/.gem/truffleruby/2.4.4/gems/async-io-1.16.3/lib/async/io/shared_endpoint.rb:70: warning: shadowing outer local variable - task
~/.gem/truffleruby/2.4.4/gems/async-io-1.16.3/lib/async/io/shared_endpoint.rb:88: warning: shadowing outer local variable - task
~/.gem/truffleruby/2.4.4/gems/samovar-1.9.1/lib/samovar/command.rb:97: warning: shadowing outer local variable - rows
~/dev/bugs/truffleruby/falcon/lib/falcon/hosts.rb:223: warning: shadowing outer local variable - task
~/dev/bugs/truffleruby/falcon/lib/falcon/hosts.rb:234: warning: shadowing outer local variable - task
~/.gem/truffleruby/2.4.4/gems/async-rspec-1.11.0/lib/async/rspec/reactor.rb:39: warning: shadowing outer local variable - task
~/.gem/truffleruby/2.4.4/gems/async-rspec-1.11.0/lib/async/rspec/memory/limit_allocations.rb:41: warning: shadowing outer local variable - count
~/.gem/truffleruby/2.4.4/gems/async-rspec-1.11.0/lib/async/rspec/ssl.rb:159: warning: shadowing outer local variable - context
Falcon::Adapters::Input
with body
#read(length, buffer)
can read partial input
can read all input
with large body
Are you on linux? I was running on macOS.
Make sure you specify NIO4R_PURE=true rspec
@ioquatix macOS 10.14
I can see this in my browser (Firefox:

I guess, it might be due to self-signed certificate?
NIO4R_PURE=true rspec doesn't help. It freeze in the same point.
Try using Chrome or Safari, there have been reports of problems with FireFox which I haven't figured out yet.
Did you bundle update before running specs?
Here is what I had to do:
export PATH=/opt/local/libexec/llvm-7.0/bin:$PATH
rvm reinstall truffleruby
bundle update
NIO4R_PURE=true rspec
But it failed :( I will try to investigate why.
I fixed ruby-prof by only allowing it on mri.
I think the problem is somewhere in here: https://github.com/socketry/async-rspec/blob/master/lib/async/rspec/memory/trace.rb
@ioquatix I had the all latest gems. bundle update didn't bring any new since all gems had been latest. + I had to removed ruby-prof due to incompatibility with truffleruby.
But when I used NIO4R_PURE=true bundle exec rspec and then I used ctrl + c in the freezing point. I got this
$ NIO4R_PURE=true bundle exec rspec
~/.gem/truffleruby/2.4.4/gems/async-io-1.16.3/lib/async/io/socket.rb:97: warning: shadowing outer local variable - task
~/.gem/truffleruby/2.4.4/gems/async-io-1.16.3/lib/async/io/socket.rb:180: warning: shadowing outer local variable - task
~/dev/bugs/truffleruby/falcon/lib/falcon/verbose.rb:52: warning: shadowing outer local variable - statistics
~/.gem/truffleruby/2.4.4/gems/async-io-1.16.3/lib/async/io/shared_endpoint.rb:29: warning: shadowing outer local variable - endpoint
~/.gem/truffleruby/2.4.4/gems/async-io-1.16.3/lib/async/io/shared_endpoint.rb:70: warning: shadowing outer local variable - task
~/.gem/truffleruby/2.4.4/gems/async-io-1.16.3/lib/async/io/shared_endpoint.rb:88: warning: shadowing outer local variable - task
~/.gem/truffleruby/2.4.4/gems/samovar-1.9.1/lib/samovar/command.rb:97: warning: shadowing outer local variable - rows
~/dev/bugs/truffleruby/falcon/lib/falcon/hosts.rb:223: warning: shadowing outer local variable - task
~/dev/bugs/truffleruby/falcon/lib/falcon/hosts.rb:234: warning: shadowing outer local variable - task
~/.gem/truffleruby/2.4.4/gems/async-rspec-1.11.0/lib/async/rspec/reactor.rb:39: warning: shadowing outer local variable - task
~/.gem/truffleruby/2.4.4/gems/async-rspec-1.11.0/lib/async/rspec/memory/limit_allocations.rb:41: warning: shadowing outer local variable - count
~/.gem/truffleruby/2.4.4/gems/async-rspec-1.11.0/lib/async/rspec/ssl.rb:159: warning: shadowing outer local variable - context
Falcon::Adapters::Input
with body
#read(length, buffer)
can read partial input
can read all input
with large body
^Ccd[ruby] SEVERE: waited 5 seconds in the SafepointManager but 1 of 3 threads did not arrive - a thread is likely making a blocking native call which should use runBlockingSystemCallUntilResult() - check with jstack
Dumping stacktraces of blocked threads:
Thread[main,5,main]
com.oracle.svm.core.thread.Safepoint.freezeAtSafepoint(Safepoint.java:241)
com.oracle.svm.core.thread.Safepoint.slowPathSafepointCheck(Safepoint.java:214)
com.oracle.svm.core.thread.Safepoint.enterSlowPathSafepointCheck(Safepoint.java:326)
com.oracle.svm.core.code.CodeInfoDecoder.lookupCodeInfo(CodeInfoDecoder.java:129)
com.oracle.svm.core.code.CodeInfoTable.lookupCodeInfoQueryResult(CodeInfoTable.java:83)
com.oracle.svm.core.stack.PhysicalStackFrameVisitor.visitFrame(SubstrateStackIntrospection.java:108)
com.oracle.svm.core.stack.JavaStackWalker.doWalk(JavaStackWalker.java:97)
com.oracle.svm.core.stack.JavaStackWalker.walkCurrentThread(JavaStackWalker.java:54)
com.oracle.svm.core.stack.SubstrateStackIntrospection.iterateFrames(SubstrateStackIntrospection.java:78)
org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime.iterateImpl(GraalTruffleRuntime.java:550)
org.graalvm.compiler.truffle.runtime.GraalTruffleRuntime.iterateFrames(GraalTruffleRuntime.java:506)
org.truffleruby.language.CallStackManager.getTopMostUserSourceSection(CallStackManager.java:178)
org.truffleruby.language.objects.AllocateObjectNode.allocateTracing(AllocateObjectNode.java:91)
org.truffleruby.language.objects.AllocateObjectNodeGen.executeAndSpecialize(AllocateObjectNodeGen.java:155)
org.truffleruby.language.objects.AllocateObjectNodeGen.executeAllocate(AllocateObjectNodeGen.java:82)
org.truffleruby.language.objects.AllocateObjectNode.allocate(AllocateObjectNode.java:44)
org.truffleruby.core.string.StringNodes$MakeStringNode.allocate(StringNodes.java:242)
org.truffleruby.core.string.StringNodes$MakeStringNode.makeStringFromBytes(StringNodes.java:234)
org.truffleruby.core.string.StringNodes$MakeStringNode.makeStringFromString(StringNodes.java:256)
org.truffleruby.core.string.StringNodesFactory$MakeStringNodeGen.executeAndSpecialize(StringNodesFactory.java:216)
org.truffleruby.core.string.StringNodesFactory$MakeStringNodeGen.executeMake(StringNodesFactory.java:171)
I use chruby, ruby-build and llvm 4.0 (what is recommend to use)
I got some kind of infinite loop in async-rspec when tracking memory allocations:
org.truffleruby.core.string.StringNodesFactory$MakeStringNodeGen.executeMake(StringNodesFactory.java:171)
org.truffleruby.language.objects.AllocateObjectNode.string(AllocateObjectNode.java:117)
org.truffleruby.language.objects.AllocateObjectNode.allocateTracing(AllocateObjectNode.java:104)
org.truffleruby.language.objects.AllocateObjectNodeGen.executeAndSpecialize(AllocateObjectNodeGen.java:155)
org.truffleruby.language.objects.AllocateObjectNodeGen.executeAllocate(AllocateObjectNodeGen.java:82)
org.truffleruby.language.objects.AllocateObjectNode.allocate(AllocateObjectNode.java:44)
org.truffleruby.core.string.StringNodes$MakeStringNode.allocate(StringNodes.java:242)
org.truffleruby.core.string.StringNodes$MakeStringNode.makeStringFromBytes(StringNodes.java:234)
org.truffleruby.core.string.StringNodes$MakeStringNode.makeStringFromString(StringNodes.java:256)
org.truffleruby.core.string.StringNodesFactory$MakeStringNodeGen.executeAndSpecialize(StringNodesFactory.java:216)
org.truffleruby.core.string.StringNodesFactory$MakeStringNodeGen.executeMake(StringNodesFactory.java:171)
org.truffleruby.language.objects.AllocateObjectNode.string(AllocateObjectNode.java:117)
org.truffleruby.language.objects.AllocateObjectNode.allocateTracing(AllocateObjectNode.java:104)
org.truffleruby.language.objects.AllocateObjectNodeGen.executeAndSpecialize(AllocateObjectNodeGen.java:155)
org.truffleruby.language.objects.AllocateObjectNodeGen.executeAllocate(AllocateObjectNodeGen.java:82)
org.truffleruby.language.objects.AllocateObjectNode.allocate(AllocateObjectNode.java:44)
org.truffleruby.core.string.StringNodes$MakeStringNode.allocate(StringNodes.java:242)
org.truffleruby.core.string.StringNodes$MakeStringNode.makeStringFromBytes(StringNodes.java:234)
org.truffleruby.core.string.StringNodes$MakeStringNode.makeStringFromString(StringNodes.java:256)
org.truffleruby.core.string.StringNodesFactory$MakeStringNodeGen.executeAndSpecialize(StringNodesFactory.java:216)
org.truffleruby.core.string.StringNodesFactory$MakeStringNodeGen.executeMake(StringNodesFactory.java:171)
org.truffleruby.language.objects.AllocateObjectNode.string(AllocateObjectNode.java:117)
org.truffleruby.language.objects.AllocateObjectNode.allocateTracing(AllocateObjectNode.java:104)
org.truffleruby.language.objects.AllocateObjectNodeGen.executeAndSpecialize(AllocateObjectNodeGen.java:155)
org.truffleruby.language.objects.AllocateObjectNodeGen.executeAllocate(AllocateObjectNodeGen.java:82)
org.truffleruby.language.objects.AllocateObjectNode.allocate(AllocateObjectNode.java:44)
org.truffleruby.core.string.StringNodes$MakeStringNode.allocate(StringNodes.java:242)
org.truffleruby.core.string.StringNodes$MakeStringNode.makeStringFromBytes(StringNodes.java:234)
org.truffleruby.core.string.StringNodes$MakeStringNode.makeStringFromString(StringNodes.java:256)
org.truffleruby.core.string.StringNodesFactory$MakeStringNodeGen.executeAndSpecialize(StringNodesFactory.java:216)
org.truffleruby.core.string.StringNodesFactory$MakeStringNodeGen.executeMake(StringNodesFactory.java:171)
org.truffleruby.language.objects.AllocateObjectNode.string(AllocateObjectNode.java:117)
org.truffleruby.language.objects.AllocateObjectNode.allocateTracing(AllocateObjectNode.java:104)
org.truffleruby.language.objects.AllocateObjectNodeGen.executeAndSpecialize(AllocateObjectNodeGen.java:155)
org.truffleruby.language.objects.AllocateObjectNodeGen.executeAllocate(AllocateObjectNodeGen.java:82)
org.truffleruby.language.objects.AllocateObjectNode.allocate(AllocateObjectNode.java:44)
org.truffleruby.core.string.StringNodes$MakeStringNode.allocate(StringNodes.java:242)
org.truffleruby.core.string.StringNodes$MakeStringNode.makeStringFromBytes(StringNodes.java:234)
org.truffleruby.core.string.StringNodes$MakeStringNode.makeStringFromString(StringNodes.java:256)
org.truffleruby.core.string.StringNodesFactory$MakeStringNodeGen.executeAndSpecialize(StringNodesFactory.java:216)
org.truffleruby.core.string.StringNodesFactory$MakeStringNodeGen.executeMake(StringNodesFactory.java:171)
I think ObjectSpace.trace_object_allocations(&block) is broken.
@ioquatix just back to the original issue. The same behaviour is with Safari. I get Cannot convert LLVMTypedForeignObject+0x0 to LLVMNativePointer
I've disabled the memory checks for truffleruby. We should file a bug report too.
Okay, I filed a bug report https://github.com/oracle/truffleruby/issues/1456 and also disabled the memory checks on async-rspec.
Okay so I got most of the specs to pass, but there are still some issues.
Okay, sorry for the dump, but lots of specs passing now, and still some kind of "internal error".
^_^ > rspec
/Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-io-1.16.3/lib/async/io/socket.rb:97: warning: shadowing outer local variable - task
/Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-io-1.16.3/lib/async/io/socket.rb:180: warning: shadowing outer local variable - task
/Users/samuel/Documents/socketry/falcon/lib/falcon/verbose.rb:52: warning: shadowing outer local variable - statistics
/Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-io-1.16.3/lib/async/io/shared_endpoint.rb:29: warning: shadowing outer local variable - endpoint
/Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-io-1.16.3/lib/async/io/shared_endpoint.rb:70: warning: shadowing outer local variable - task
/Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-io-1.16.3/lib/async/io/shared_endpoint.rb:88: warning: shadowing outer local variable - task
/Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/samovar-1.9.1/lib/samovar/command.rb:97: warning: shadowing outer local variable - rows
/Users/samuel/Documents/socketry/falcon/lib/falcon/hosts.rb:223: warning: shadowing outer local variable - task
/Users/samuel/Documents/socketry/falcon/lib/falcon/hosts.rb:234: warning: shadowing outer local variable - task
/Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-rspec-1.11.1/lib/async/rspec/reactor.rb:39: warning: shadowing outer local variable - task
/Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-rspec-1.11.1/lib/async/rspec/memory/limit_allocations.rb:41: warning: shadowing outer local variable - count
/Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-rspec-1.11.1/lib/async/rspec/ssl.rb:159: warning: shadowing outer local variable - context
Falcon::Adapters::Input
with body
#read(length, buffer)
can read partial input
can read all input
with large body
allocates expected amount of memory
#read
can read all input
can read no input
can read partial input
can read partial input with buffer
with large body
allocates expected amount of memory
#gets
can read chunks
returns remainder after calling #read
#each
can read chunks
#eof?
should not be at end of file
#rewind
reads same chunk again
clears unread buffer
without body
#read(length, buffer)
can read no input
can read partial input
#read
can read all input
can read no input
can read partial input
#gets
can read chunks
#eof?
should be at end of file
Falcon::Adapters::Output
with empty body
should be empty?
with single string body
should not be empty?
Falcon::Adapters::Rack
#unwrap_headers
should merge duplicate headers
HTTP_HOST
get valid HTTP_HOST (FAILED - 1)
websockets
can send and receive messages using websockets (FAILED - 2)
Falcon::Adapters::Response
with multiple set-cookie headers
should generate multiple headers
with #to_path
should generate file body
should not modify partial responses
with content-length
should remove header
Falcon::Command::Serve
can listen on specified port (FAILED - 3)
Falcon::Proxy
E, [2018-11-07T11:56:31.138000 #2244] ERROR -- #<Falcon::Proxy:0x27da>: expected the first argument to be a Integer, Symbol, String, or Socket::Option (TypeError)
/Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-http-0.37.0/lib/async/http/client.rb:106:in `call'
/Users/samuel/Documents/socketry/falcon/lib/falcon/proxy.rb:121:in `call'
/Users/samuel/Documents/socketry/falcon/spec/falcon/proxy_spec.rb:43:in `block (2 levels) in <top (required)>'
/Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/rspec-core-3.8.0/lib/rspec/core/example.rb:254:in `instance_exec'
/Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/rspec-core-3.8.0/lib/rspec/core/example.rb:254:in `block in run'
/Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/rspec-core-3.8.0/lib/rspec/core/example.rb:500:in `block in with_around_and_singleton_context_hooks'
/Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/rspec-core-3.8.0/lib/rspec/core/example.rb:457:in `block in with_around_example_hooks'
/Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/rspec-core-3.8.0/lib/rspec/core/hooks.rb:464:in `block in run'
/Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/rspec-core-3.8.0/lib/rspec/core/hooks.rb:604:in `block in run_around_example_hooks_for'
/Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/rspec-core-3.8.0/lib/rspec/core/example.rb:342:in `call'
/Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/rspec-core-3.8.0/lib/rspec/core/example.rb:342:in `call'
/Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-rspec-1.11.1/lib/async/rspec/reactor.rb:55:in `block (2 levels) in run_example'
/Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:74:in `block in initialize'
can select client based on authority (FAILED - 4)
defers if no host is available (FAILED - 5)
Falcon::Server
http client
can POST application/x-www-form-urlencoded (FAILED - 6)
can POST multipart/form-data (FAILED - 7)
GET /
generates successful response (FAILED - 8)
generates server and date headers (FAILED - 9)
broken middleware
results in a 500 error if middleware raises an exception (FAILED - 10)
Falcon::Server with SSL
basic middleware
client can get resource (FAILED - 11)
Falcon::Server
can start server (FAILED - 12)
Failures:
1) Falcon::Adapters::Rack HTTP_HOST get valid HTTP_HOST
Got 0 failures and 3 other errors:
1.1) Failure/Error: server_task = reactor.async do
RuntimeError:
Cannot convert LLVMTypedForeignObject+0x0 to LLVMNativePointer (IllegalStateException)
from java.lang.Throwable.<init>(Throwable.java:287)
from java.lang.Exception.<init>(Exception.java:84)
from java.lang.RuntimeException.<init>(RuntimeException.java:80)
from java.lang.IllegalStateException.<init>(IllegalStateException.java:75)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode$LLVMObjectToNativeNode.transitionToNative(LLVMToNativeNode.java:117)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen$LLVMObjectToNativeNodeGen.executeAndSpecialize(LLVMToNativeNodeGen.java:301)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen$LLVMObjectToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:201)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode.doOther(LLVMToNativeNode.java:78)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen.executeAndSpecialize(LLVMToNativeNodeGen.java:129)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:50)
Caused by:
Message not supported: TO_NATIVE (UnsupportedMessageException)
from java.lang.Throwable.<init>(Throwable.java:265)
from java.lang.Exception.<init>(Exception.java:66)
from com.oracle.truffle.api.interop.InteropException.<init>(InteropException.java:52)
from com.oracle.truffle.api.interop.UnsupportedMessageException.<init>(UnsupportedMessageException.java:57)
from com.oracle.truffle.api.interop.UnsupportedMessageException.raise(UnsupportedMessageException.java:84)
from org.truffleruby.interop.RubyMessageResolution$ForeignToNativeNode.access(RubyMessageResolution.java:190)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode.accessWithTarget(RubyMessageResolutionForeign.java:503)
from org.truffleruby.interop.RubyMessageResolutionForeignFactory$ForeignToNativeSubNodeGen.executeAndSpecialize(RubyMessageResolutionForeignFactory.java:602)
from org.truffleruby.interop.RubyMessageResolutionForeignFactory$ForeignToNativeSubNodeGen.executeWithTarget(RubyMessageResolutionForeignFactory.java:588)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode$TO_NATIVERootNode.execute(RubyMessageResolutionForeign.java:520)
Translated to internal error
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:85:in `internal_raise'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:85:in `raise'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:85:in `block in initialize'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:117:in `resume'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:117:in `run'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/reactor.rb:104:in `async'
# ./spec/spec_helper.rb:33:in `server_task'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-rspec-1.11.1/lib/async/rspec/reactor.rb:55:in `block (2 levels) in run_example'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:74:in `block in initialize'
1.2) Failure/Error: server_task = reactor.async do
RuntimeError:
Cannot convert LLVMTypedForeignObject+0x0 to LLVMNativePointer (IllegalStateException)
from java.lang.Throwable.<init>(Throwable.java:287)
from java.lang.Exception.<init>(Exception.java:84)
from java.lang.RuntimeException.<init>(RuntimeException.java:80)
from java.lang.IllegalStateException.<init>(IllegalStateException.java:75)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode$LLVMObjectToNativeNode.transitionToNative(LLVMToNativeNode.java:117)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen$LLVMObjectToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:194)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode.doOther(LLVMToNativeNode.java:78)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:46)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNode.doAddress(LLVMPointerStoreNode.java:68)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNodeGen.execute_generic1(LLVMPointerStoreNodeGen.java:165)
Caused by:
Message not supported: TO_NATIVE (UnsupportedMessageException)
from java.lang.Throwable.<init>(Throwable.java:265)
from java.lang.Exception.<init>(Exception.java:66)
from com.oracle.truffle.api.interop.InteropException.<init>(InteropException.java:52)
from com.oracle.truffle.api.interop.UnsupportedMessageException.<init>(UnsupportedMessageException.java:57)
from com.oracle.truffle.api.interop.UnsupportedMessageException.raise(UnsupportedMessageException.java:84)
from org.truffleruby.interop.RubyMessageResolution$ForeignToNativeNode.access(RubyMessageResolution.java:190)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode.accessWithTarget(RubyMessageResolutionForeign.java:503)
from org.truffleruby.interop.RubyMessageResolutionForeignFactory$ForeignToNativeSubNodeGen.executeWithTarget(RubyMessageResolutionForeignFactory.java:585)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode$TO_NATIVERootNode.execute(RubyMessageResolutionForeign.java:520)
from org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:289)
Translated to internal error
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:85:in `internal_raise'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:85:in `raise'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:85:in `block in initialize'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:117:in `resume'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:117:in `run'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/reactor.rb:104:in `async'
# ./spec/spec_helper.rb:33:in `server_task'
# ./spec/spec_helper.rb:39:in `block (2 levels) in <top (required)>'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-rspec-1.11.1/lib/async/rspec/reactor.rb:55:in `block (2 levels) in run_example'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:74:in `block in initialize'
1.3) Failure/Error: Truffle::Interop.execute_without_conversion(function, *args)
RuntimeError:
Cannot convert LLVMTypedForeignObject+0x0 to LLVMNativePointer (IllegalStateException)
from java.lang.Throwable.<init>(Throwable.java:287)
from java.lang.Exception.<init>(Exception.java:84)
from java.lang.RuntimeException.<init>(RuntimeException.java:80)
from java.lang.IllegalStateException.<init>(IllegalStateException.java:75)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode$LLVMObjectToNativeNode.transitionToNative(LLVMToNativeNode.java:117)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen$LLVMObjectToNativeNodeGen.executeAndSpecialize(LLVMToNativeNodeGen.java:301)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen$LLVMObjectToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:201)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode.doOther(LLVMToNativeNode.java:78)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen.executeAndSpecialize(LLVMToNativeNodeGen.java:129)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:50)
Caused by:
Message not supported: TO_NATIVE (UnsupportedMessageException)
from java.lang.Throwable.<init>(Throwable.java:265)
from java.lang.Exception.<init>(Exception.java:66)
from com.oracle.truffle.api.interop.InteropException.<init>(InteropException.java:52)
from com.oracle.truffle.api.interop.UnsupportedMessageException.<init>(UnsupportedMessageException.java:57)
from com.oracle.truffle.api.interop.UnsupportedMessageException.raise(UnsupportedMessageException.java:84)
from org.truffleruby.interop.RubyMessageResolution$ForeignToNativeNode.access(RubyMessageResolution.java:190)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode.accessWithTarget(RubyMessageResolutionForeign.java:503)
from org.truffleruby.interop.RubyMessageResolutionForeignFactory$ForeignToNativeSubNodeGen.executeAndSpecialize(RubyMessageResolutionForeignFactory.java:602)
from org.truffleruby.interop.RubyMessageResolutionForeignFactory$ForeignToNativeSubNodeGen.executeWithTarget(RubyMessageResolutionForeignFactory.java:588)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode$TO_NATIVERootNode.execute(RubyMessageResolutionForeign.java:520)
Translated to internal error
# /Users/samuel/.rvm/rubies/truffleruby-1.0.0-rc9/lib/truffle/truffle/cext.rb:221:in `execute_without_conversion'
# /Users/samuel/.rvm/rubies/truffleruby-1.0.0-rc9/lib/truffle/truffle/cext.rb:221:in `execute_with_mutex'
# /Users/samuel/.rvm/rubies/truffleruby-1.0.0-rc9/lib/truffle/truffle/cext_ruby.rb:36:in `close'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/debug/selector.rb:73:in `close'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/reactor.rb:208:in `close'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-rspec-1.11.1/lib/async/rspec/reactor.rb:84:in `block (2 levels) in RSpec'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-rspec-1.11.1/lib/async/rspec/leaks.rb:42:in `block (2 levels) in RSpec'
2) Falcon::Adapters::Rack websockets can send and receive messages using websockets
Got 0 failures and 3 other errors:
2.1) Failure/Error: server_task = reactor.async do
RuntimeError:
Cannot convert LLVMTypedForeignObject+0x0 to LLVMNativePointer (IllegalStateException)
from java.lang.Throwable.<init>(Throwable.java:287)
from java.lang.Exception.<init>(Exception.java:84)
from java.lang.RuntimeException.<init>(RuntimeException.java:80)
from java.lang.IllegalStateException.<init>(IllegalStateException.java:75)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode$LLVMObjectToNativeNode.transitionToNative(LLVMToNativeNode.java:117)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen$LLVMObjectToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:194)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode.doOther(LLVMToNativeNode.java:78)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:46)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNode.doAddress(LLVMPointerStoreNode.java:68)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNodeGen.execute_generic1(LLVMPointerStoreNodeGen.java:165)
Caused by:
Message not supported: TO_NATIVE (UnsupportedMessageException)
from java.lang.Throwable.<init>(Throwable.java:265)
from java.lang.Exception.<init>(Exception.java:66)
from com.oracle.truffle.api.interop.InteropException.<init>(InteropException.java:52)
from com.oracle.truffle.api.interop.UnsupportedMessageException.<init>(UnsupportedMessageException.java:57)
from com.oracle.truffle.api.interop.UnsupportedMessageException.raise(UnsupportedMessageException.java:84)
from org.truffleruby.interop.RubyMessageResolution$ForeignToNativeNode.access(RubyMessageResolution.java:190)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode.accessWithTarget(RubyMessageResolutionForeign.java:503)
from org.truffleruby.interop.RubyMessageResolutionForeignFactory$ForeignToNativeSubNodeGen.executeWithTarget(RubyMessageResolutionForeignFactory.java:585)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode$TO_NATIVERootNode.execute(RubyMessageResolutionForeign.java:520)
from org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:289)
Translated to internal error
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:85:in `internal_raise'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:85:in `raise'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:85:in `block in initialize'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:117:in `resume'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:117:in `run'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/reactor.rb:104:in `async'
# ./spec/spec_helper.rb:33:in `server_task'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-rspec-1.11.1/lib/async/rspec/reactor.rb:55:in `block (2 levels) in run_example'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:74:in `block in initialize'
2.2) Failure/Error: server_task = reactor.async do
RuntimeError:
Cannot convert LLVMTypedForeignObject+0x0 to LLVMNativePointer (IllegalStateException)
from java.lang.Throwable.<init>(Throwable.java:287)
from java.lang.Exception.<init>(Exception.java:84)
from java.lang.RuntimeException.<init>(RuntimeException.java:80)
from java.lang.IllegalStateException.<init>(IllegalStateException.java:75)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode$LLVMObjectToNativeNode.transitionToNative(LLVMToNativeNode.java:117)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen$LLVMObjectToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:194)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode.doOther(LLVMToNativeNode.java:78)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:46)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNode.doAddress(LLVMPointerStoreNode.java:68)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNodeGen.execute_generic1(LLVMPointerStoreNodeGen.java:165)
Caused by:
Message not supported: TO_NATIVE (UnsupportedMessageException)
from java.lang.Throwable.<init>(Throwable.java:265)
from java.lang.Exception.<init>(Exception.java:66)
from com.oracle.truffle.api.interop.InteropException.<init>(InteropException.java:52)
from com.oracle.truffle.api.interop.UnsupportedMessageException.<init>(UnsupportedMessageException.java:57)
from com.oracle.truffle.api.interop.UnsupportedMessageException.raise(UnsupportedMessageException.java:84)
from org.truffleruby.interop.RubyMessageResolution$ForeignToNativeNode.access(RubyMessageResolution.java:190)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode.accessWithTarget(RubyMessageResolutionForeign.java:503)
from org.truffleruby.interop.RubyMessageResolutionForeignFactory$ForeignToNativeSubNodeGen.executeWithTarget(RubyMessageResolutionForeignFactory.java:585)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode$TO_NATIVERootNode.execute(RubyMessageResolutionForeign.java:520)
from org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:289)
Translated to internal error
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:85:in `internal_raise'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:85:in `raise'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:85:in `block in initialize'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:117:in `resume'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:117:in `run'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/reactor.rb:104:in `async'
# ./spec/spec_helper.rb:33:in `server_task'
# ./spec/spec_helper.rb:39:in `block (2 levels) in <top (required)>'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-rspec-1.11.1/lib/async/rspec/reactor.rb:55:in `block (2 levels) in run_example'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:74:in `block in initialize'
2.3) Failure/Error: Truffle::Interop.execute_without_conversion(function, *args)
RuntimeError:
Cannot convert LLVMTypedForeignObject+0x0 to LLVMNativePointer (IllegalStateException)
from java.lang.Throwable.<init>(Throwable.java:287)
from java.lang.Exception.<init>(Exception.java:84)
from java.lang.RuntimeException.<init>(RuntimeException.java:80)
from java.lang.IllegalStateException.<init>(IllegalStateException.java:75)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode$LLVMObjectToNativeNode.transitionToNative(LLVMToNativeNode.java:117)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen$LLVMObjectToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:194)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode.doOther(LLVMToNativeNode.java:78)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:46)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNode.doAddress(LLVMPointerStoreNode.java:68)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNodeGen.execute_generic1(LLVMPointerStoreNodeGen.java:165)
Caused by:
Message not supported: TO_NATIVE (UnsupportedMessageException)
from java.lang.Throwable.<init>(Throwable.java:265)
from java.lang.Exception.<init>(Exception.java:66)
from com.oracle.truffle.api.interop.InteropException.<init>(InteropException.java:52)
from com.oracle.truffle.api.interop.UnsupportedMessageException.<init>(UnsupportedMessageException.java:57)
from com.oracle.truffle.api.interop.UnsupportedMessageException.raise(UnsupportedMessageException.java:84)
from org.truffleruby.interop.RubyMessageResolution$ForeignToNativeNode.access(RubyMessageResolution.java:190)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode.accessWithTarget(RubyMessageResolutionForeign.java:503)
from org.truffleruby.interop.RubyMessageResolutionForeignFactory$ForeignToNativeSubNodeGen.executeWithTarget(RubyMessageResolutionForeignFactory.java:585)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode$TO_NATIVERootNode.execute(RubyMessageResolutionForeign.java:520)
from org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:289)
Translated to internal error
# /Users/samuel/.rvm/rubies/truffleruby-1.0.0-rc9/lib/truffle/truffle/cext.rb:221:in `execute_without_conversion'
# /Users/samuel/.rvm/rubies/truffleruby-1.0.0-rc9/lib/truffle/truffle/cext.rb:221:in `execute_with_mutex'
# /Users/samuel/.rvm/rubies/truffleruby-1.0.0-rc9/lib/truffle/truffle/cext_ruby.rb:36:in `close'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/debug/selector.rb:73:in `close'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/reactor.rb:208:in `close'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-rspec-1.11.1/lib/async/rspec/reactor.rb:84:in `block (2 levels) in RSpec'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-rspec-1.11.1/lib/async/rspec/leaks.rb:42:in `block (2 levels) in RSpec'
3) Falcon::Command::Serve can listen on specified port
Failure/Error: bound_endpoint = Async::Reactor.run do
RuntimeError:
Cannot convert LLVMTypedForeignObject+0x0 to LLVMNativePointer (IllegalStateException)
from java.lang.Throwable.<init>(Throwable.java:287)
from java.lang.Exception.<init>(Exception.java:84)
from java.lang.RuntimeException.<init>(RuntimeException.java:80)
from java.lang.IllegalStateException.<init>(IllegalStateException.java:75)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode$LLVMObjectToNativeNode.transitionToNative(LLVMToNativeNode.java:117)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen$LLVMObjectToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:194)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode.doOther(LLVMToNativeNode.java:78)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:46)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNode.doAddress(LLVMPointerStoreNode.java:68)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNodeGen.execute_generic1(LLVMPointerStoreNodeGen.java:165)
Caused by:
Message not supported: TO_NATIVE (UnsupportedMessageException)
from java.lang.Throwable.<init>(Throwable.java:265)
from java.lang.Exception.<init>(Exception.java:66)
from com.oracle.truffle.api.interop.InteropException.<init>(InteropException.java:52)
from com.oracle.truffle.api.interop.UnsupportedMessageException.<init>(UnsupportedMessageException.java:57)
from com.oracle.truffle.api.interop.UnsupportedMessageException.raise(UnsupportedMessageException.java:84)
from org.truffleruby.interop.RubyMessageResolution$ForeignToNativeNode.access(RubyMessageResolution.java:190)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode.accessWithTarget(RubyMessageResolutionForeign.java:503)
from org.truffleruby.interop.RubyMessageResolutionForeignFactory$ForeignToNativeSubNodeGen.executeWithTarget(RubyMessageResolutionForeignFactory.java:585)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode$TO_NATIVERootNode.execute(RubyMessageResolutionForeign.java:520)
from org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:289)
Translated to internal error
# /Users/samuel/.rvm/rubies/truffleruby-1.0.0-rc9/lib/truffle/truffle/cext.rb:221:in `execute_without_conversion'
# /Users/samuel/.rvm/rubies/truffleruby-1.0.0-rc9/lib/truffle/truffle/cext.rb:221:in `execute_with_mutex'
# /Users/samuel/.rvm/rubies/truffleruby-1.0.0-rc9/lib/truffle/truffle/cext_ruby.rb:36:in `close'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/reactor.rb:208:in `close'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/reactor.rb:56:in `run'
# ./lib/falcon/command/serve.rb:97:in `run'
# ./spec/falcon/command/serve_spec.rb:31:in `block (2 levels) in <top (required)>'
4) Falcon::Proxy can select client based on authority
Got 1 failure and 1 other error:
4.1) Failure/Error: expect(response).to_not be_failure
expected `#<Async::HTTP::Response:0x27dc @body=nil, @headers={"content-type"=>"text/plain"}, @reason=nil, @status=502, @version=nil>.failure?` to return false, got true
# ./spec/falcon/proxy_spec.rb:46:in `block (2 levels) in <top (required)>'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-rspec-1.11.1/lib/async/rspec/reactor.rb:55:in `block (2 levels) in run_example'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:74:in `block in initialize'
4.2) Failure/Error: Truffle::Interop.execute_without_conversion(function, *args)
RuntimeError:
Cannot convert LLVMTypedForeignObject+0x0 to LLVMNativePointer (IllegalStateException)
from java.lang.Throwable.<init>(Throwable.java:287)
from java.lang.Exception.<init>(Exception.java:84)
from java.lang.RuntimeException.<init>(RuntimeException.java:80)
from java.lang.IllegalStateException.<init>(IllegalStateException.java:75)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode$LLVMObjectToNativeNode.transitionToNative(LLVMToNativeNode.java:117)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen$LLVMObjectToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:194)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode.doOther(LLVMToNativeNode.java:78)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:46)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNode.doAddress(LLVMPointerStoreNode.java:68)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNodeGen.execute_generic1(LLVMPointerStoreNodeGen.java:165)
Caused by:
Message not supported: TO_NATIVE (UnsupportedMessageException)
from java.lang.Throwable.<init>(Throwable.java:265)
from java.lang.Exception.<init>(Exception.java:66)
from com.oracle.truffle.api.interop.InteropException.<init>(InteropException.java:52)
from com.oracle.truffle.api.interop.UnsupportedMessageException.<init>(UnsupportedMessageException.java:57)
from com.oracle.truffle.api.interop.UnsupportedMessageException.raise(UnsupportedMessageException.java:84)
from org.truffleruby.interop.RubyMessageResolution$ForeignToNativeNode.access(RubyMessageResolution.java:190)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode.accessWithTarget(RubyMessageResolutionForeign.java:503)
from org.truffleruby.interop.RubyMessageResolutionForeignFactory$ForeignToNativeSubNodeGen.executeWithTarget(RubyMessageResolutionForeignFactory.java:585)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode$TO_NATIVERootNode.execute(RubyMessageResolutionForeign.java:520)
from org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:289)
Translated to internal error
# /Users/samuel/.rvm/rubies/truffleruby-1.0.0-rc9/lib/truffle/truffle/cext.rb:221:in `execute_without_conversion'
# /Users/samuel/.rvm/rubies/truffleruby-1.0.0-rc9/lib/truffle/truffle/cext.rb:221:in `execute_with_mutex'
# /Users/samuel/.rvm/rubies/truffleruby-1.0.0-rc9/lib/truffle/truffle/cext_ruby.rb:36:in `close'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/debug/selector.rb:73:in `close'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/reactor.rb:208:in `close'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-rspec-1.11.1/lib/async/rspec/reactor.rb:84:in `block (2 levels) in RSpec'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-rspec-1.11.1/lib/async/rspec/leaks.rb:42:in `block (2 levels) in RSpec'
5) Falcon::Proxy defers if no host is available
Failure/Error: Truffle::Interop.execute_without_conversion(function, *args)
RuntimeError:
Cannot convert LLVMTypedForeignObject+0x0 to LLVMNativePointer (IllegalStateException)
from java.lang.Throwable.<init>(Throwable.java:287)
from java.lang.Exception.<init>(Exception.java:84)
from java.lang.RuntimeException.<init>(RuntimeException.java:80)
from java.lang.IllegalStateException.<init>(IllegalStateException.java:75)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode$LLVMObjectToNativeNode.transitionToNative(LLVMToNativeNode.java:117)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen$LLVMObjectToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:194)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode.doOther(LLVMToNativeNode.java:78)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:46)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNode.doAddress(LLVMPointerStoreNode.java:68)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNodeGen.execute_generic1(LLVMPointerStoreNodeGen.java:165)
Caused by:
Message not supported: TO_NATIVE (UnsupportedMessageException)
from java.lang.Throwable.<init>(Throwable.java:265)
from java.lang.Exception.<init>(Exception.java:66)
from com.oracle.truffle.api.interop.InteropException.<init>(InteropException.java:52)
from com.oracle.truffle.api.interop.UnsupportedMessageException.<init>(UnsupportedMessageException.java:57)
from com.oracle.truffle.api.interop.UnsupportedMessageException.raise(UnsupportedMessageException.java:84)
from org.truffleruby.interop.RubyMessageResolution$ForeignToNativeNode.access(RubyMessageResolution.java:190)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode.accessWithTarget(RubyMessageResolutionForeign.java:503)
from org.truffleruby.interop.RubyMessageResolutionForeignFactory$ForeignToNativeSubNodeGen.executeWithTarget(RubyMessageResolutionForeignFactory.java:585)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode$TO_NATIVERootNode.execute(RubyMessageResolutionForeign.java:520)
from org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:289)
Translated to internal error
# /Users/samuel/.rvm/rubies/truffleruby-1.0.0-rc9/lib/truffle/truffle/cext.rb:221:in `execute_without_conversion'
# /Users/samuel/.rvm/rubies/truffleruby-1.0.0-rc9/lib/truffle/truffle/cext.rb:221:in `execute_with_mutex'
# /Users/samuel/.rvm/rubies/truffleruby-1.0.0-rc9/lib/truffle/truffle/cext_ruby.rb:36:in `close'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/debug/selector.rb:73:in `close'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/reactor.rb:208:in `close'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-rspec-1.11.1/lib/async/rspec/reactor.rb:84:in `block (2 levels) in RSpec'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-rspec-1.11.1/lib/async/rspec/leaks.rb:42:in `block (2 levels) in RSpec'
6) Falcon::Server http client can POST application/x-www-form-urlencoded
Got 0 failures and 3 other errors:
6.1) Failure/Error: server_task = reactor.async do
RuntimeError:
Cannot convert LLVMTypedForeignObject+0x0 to LLVMNativePointer (IllegalStateException)
from java.lang.Throwable.<init>(Throwable.java:287)
from java.lang.Exception.<init>(Exception.java:84)
from java.lang.RuntimeException.<init>(RuntimeException.java:80)
from java.lang.IllegalStateException.<init>(IllegalStateException.java:75)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode$LLVMObjectToNativeNode.transitionToNative(LLVMToNativeNode.java:117)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen$LLVMObjectToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:194)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode.doOther(LLVMToNativeNode.java:78)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:46)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNode.doAddress(LLVMPointerStoreNode.java:68)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNodeGen.execute_generic1(LLVMPointerStoreNodeGen.java:165)
Caused by:
Message not supported: TO_NATIVE (UnsupportedMessageException)
from java.lang.Throwable.<init>(Throwable.java:265)
from java.lang.Exception.<init>(Exception.java:66)
from com.oracle.truffle.api.interop.InteropException.<init>(InteropException.java:52)
from com.oracle.truffle.api.interop.UnsupportedMessageException.<init>(UnsupportedMessageException.java:57)
from com.oracle.truffle.api.interop.UnsupportedMessageException.raise(UnsupportedMessageException.java:84)
from org.truffleruby.interop.RubyMessageResolution$ForeignToNativeNode.access(RubyMessageResolution.java:190)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode.accessWithTarget(RubyMessageResolutionForeign.java:503)
from org.truffleruby.interop.RubyMessageResolutionForeignFactory$ForeignToNativeSubNodeGen.executeWithTarget(RubyMessageResolutionForeignFactory.java:585)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode$TO_NATIVERootNode.execute(RubyMessageResolutionForeign.java:520)
from org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:289)
Translated to internal error
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:85:in `internal_raise'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:85:in `raise'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:85:in `block in initialize'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:117:in `resume'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:117:in `run'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/reactor.rb:104:in `async'
# ./spec/spec_helper.rb:33:in `server_task'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-rspec-1.11.1/lib/async/rspec/reactor.rb:55:in `block (2 levels) in run_example'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:74:in `block in initialize'
6.2) Failure/Error: server_task = reactor.async do
RuntimeError:
Cannot convert LLVMTypedForeignObject+0x0 to LLVMNativePointer (IllegalStateException)
from java.lang.Throwable.<init>(Throwable.java:287)
from java.lang.Exception.<init>(Exception.java:84)
from java.lang.RuntimeException.<init>(RuntimeException.java:80)
from java.lang.IllegalStateException.<init>(IllegalStateException.java:75)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode$LLVMObjectToNativeNode.transitionToNative(LLVMToNativeNode.java:117)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen$LLVMObjectToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:194)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode.doOther(LLVMToNativeNode.java:78)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:46)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNode.doAddress(LLVMPointerStoreNode.java:68)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNodeGen.execute_generic1(LLVMPointerStoreNodeGen.java:165)
Caused by:
Message not supported: TO_NATIVE (UnsupportedMessageException)
from java.lang.Throwable.<init>(Throwable.java:265)
from java.lang.Exception.<init>(Exception.java:66)
from com.oracle.truffle.api.interop.InteropException.<init>(InteropException.java:52)
from com.oracle.truffle.api.interop.UnsupportedMessageException.<init>(UnsupportedMessageException.java:57)
from com.oracle.truffle.api.interop.UnsupportedMessageException.raise(UnsupportedMessageException.java:84)
from org.truffleruby.interop.RubyMessageResolution$ForeignToNativeNode.access(RubyMessageResolution.java:190)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode.accessWithTarget(RubyMessageResolutionForeign.java:503)
from org.truffleruby.interop.RubyMessageResolutionForeignFactory$ForeignToNativeSubNodeGen.executeWithTarget(RubyMessageResolutionForeignFactory.java:585)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode$TO_NATIVERootNode.execute(RubyMessageResolutionForeign.java:520)
from org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:289)
Translated to internal error
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:85:in `internal_raise'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:85:in `raise'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:85:in `block in initialize'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:117:in `resume'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:117:in `run'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/reactor.rb:104:in `async'
# ./spec/spec_helper.rb:33:in `server_task'
# ./spec/spec_helper.rb:39:in `block (2 levels) in <top (required)>'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-rspec-1.11.1/lib/async/rspec/reactor.rb:55:in `block (2 levels) in run_example'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:74:in `block in initialize'
6.3) Failure/Error: Truffle::Interop.execute_without_conversion(function, *args)
RuntimeError:
Cannot convert LLVMTypedForeignObject+0x0 to LLVMNativePointer (IllegalStateException)
from java.lang.Throwable.<init>(Throwable.java:287)
from java.lang.Exception.<init>(Exception.java:84)
from java.lang.RuntimeException.<init>(RuntimeException.java:80)
from java.lang.IllegalStateException.<init>(IllegalStateException.java:75)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode$LLVMObjectToNativeNode.transitionToNative(LLVMToNativeNode.java:117)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen$LLVMObjectToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:194)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode.doOther(LLVMToNativeNode.java:78)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:46)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNode.doAddress(LLVMPointerStoreNode.java:68)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNodeGen.execute_generic1(LLVMPointerStoreNodeGen.java:165)
Caused by:
Message not supported: TO_NATIVE (UnsupportedMessageException)
from java.lang.Throwable.<init>(Throwable.java:265)
from java.lang.Exception.<init>(Exception.java:66)
from com.oracle.truffle.api.interop.InteropException.<init>(InteropException.java:52)
from com.oracle.truffle.api.interop.UnsupportedMessageException.<init>(UnsupportedMessageException.java:57)
from com.oracle.truffle.api.interop.UnsupportedMessageException.raise(UnsupportedMessageException.java:84)
from org.truffleruby.interop.RubyMessageResolution$ForeignToNativeNode.access(RubyMessageResolution.java:190)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode.accessWithTarget(RubyMessageResolutionForeign.java:503)
from org.truffleruby.interop.RubyMessageResolutionForeignFactory$ForeignToNativeSubNodeGen.executeWithTarget(RubyMessageResolutionForeignFactory.java:585)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode$TO_NATIVERootNode.execute(RubyMessageResolutionForeign.java:520)
from org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:289)
Translated to internal error
# /Users/samuel/.rvm/rubies/truffleruby-1.0.0-rc9/lib/truffle/truffle/cext.rb:221:in `execute_without_conversion'
# /Users/samuel/.rvm/rubies/truffleruby-1.0.0-rc9/lib/truffle/truffle/cext.rb:221:in `execute_with_mutex'
# /Users/samuel/.rvm/rubies/truffleruby-1.0.0-rc9/lib/truffle/truffle/cext_ruby.rb:36:in `close'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/debug/selector.rb:73:in `close'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/reactor.rb:208:in `close'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-rspec-1.11.1/lib/async/rspec/reactor.rb:84:in `block (2 levels) in RSpec'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-rspec-1.11.1/lib/async/rspec/leaks.rb:42:in `block (2 levels) in RSpec'
7) Falcon::Server http client can POST multipart/form-data
Got 0 failures and 3 other errors:
7.1) Failure/Error: server_task = reactor.async do
RuntimeError:
Cannot convert LLVMTypedForeignObject+0x0 to LLVMNativePointer (IllegalStateException)
from java.lang.Throwable.<init>(Throwable.java:287)
from java.lang.Exception.<init>(Exception.java:84)
from java.lang.RuntimeException.<init>(RuntimeException.java:80)
from java.lang.IllegalStateException.<init>(IllegalStateException.java:75)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode$LLVMObjectToNativeNode.transitionToNative(LLVMToNativeNode.java:117)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen$LLVMObjectToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:194)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode.doOther(LLVMToNativeNode.java:78)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:46)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNode.doAddress(LLVMPointerStoreNode.java:68)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNodeGen.execute_generic1(LLVMPointerStoreNodeGen.java:165)
Caused by:
Message not supported: TO_NATIVE (UnsupportedMessageException)
from java.lang.Throwable.<init>(Throwable.java:265)
from java.lang.Exception.<init>(Exception.java:66)
from com.oracle.truffle.api.interop.InteropException.<init>(InteropException.java:52)
from com.oracle.truffle.api.interop.UnsupportedMessageException.<init>(UnsupportedMessageException.java:57)
from com.oracle.truffle.api.interop.UnsupportedMessageException.raise(UnsupportedMessageException.java:84)
from org.truffleruby.interop.RubyMessageResolution$ForeignToNativeNode.access(RubyMessageResolution.java:190)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode.accessWithTarget(RubyMessageResolutionForeign.java:503)
from org.truffleruby.interop.RubyMessageResolutionForeignFactory$ForeignToNativeSubNodeGen.executeWithTarget(RubyMessageResolutionForeignFactory.java:585)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode$TO_NATIVERootNode.execute(RubyMessageResolutionForeign.java:520)
from org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:289)
Translated to internal error
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:85:in `internal_raise'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:85:in `raise'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:85:in `block in initialize'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:117:in `resume'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:117:in `run'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/reactor.rb:104:in `async'
# ./spec/spec_helper.rb:33:in `server_task'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-rspec-1.11.1/lib/async/rspec/reactor.rb:55:in `block (2 levels) in run_example'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:74:in `block in initialize'
7.2) Failure/Error: server_task = reactor.async do
RuntimeError:
Cannot convert LLVMTypedForeignObject+0x0 to LLVMNativePointer (IllegalStateException)
from java.lang.Throwable.<init>(Throwable.java:287)
from java.lang.Exception.<init>(Exception.java:84)
from java.lang.RuntimeException.<init>(RuntimeException.java:80)
from java.lang.IllegalStateException.<init>(IllegalStateException.java:75)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode$LLVMObjectToNativeNode.transitionToNative(LLVMToNativeNode.java:117)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen$LLVMObjectToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:194)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode.doOther(LLVMToNativeNode.java:78)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:46)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNode.doAddress(LLVMPointerStoreNode.java:68)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNodeGen.execute_generic1(LLVMPointerStoreNodeGen.java:165)
Caused by:
Message not supported: TO_NATIVE (UnsupportedMessageException)
from java.lang.Throwable.<init>(Throwable.java:265)
from java.lang.Exception.<init>(Exception.java:66)
from com.oracle.truffle.api.interop.InteropException.<init>(InteropException.java:52)
from com.oracle.truffle.api.interop.UnsupportedMessageException.<init>(UnsupportedMessageException.java:57)
from com.oracle.truffle.api.interop.UnsupportedMessageException.raise(UnsupportedMessageException.java:84)
from org.truffleruby.interop.RubyMessageResolution$ForeignToNativeNode.access(RubyMessageResolution.java:190)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode.accessWithTarget(RubyMessageResolutionForeign.java:503)
from org.truffleruby.interop.RubyMessageResolutionForeignFactory$ForeignToNativeSubNodeGen.executeWithTarget(RubyMessageResolutionForeignFactory.java:585)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode$TO_NATIVERootNode.execute(RubyMessageResolutionForeign.java:520)
from org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:289)
Translated to internal error
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:85:in `internal_raise'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:85:in `raise'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:85:in `block in initialize'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:117:in `resume'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:117:in `run'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/reactor.rb:104:in `async'
# ./spec/spec_helper.rb:33:in `server_task'
# ./spec/spec_helper.rb:39:in `block (2 levels) in <top (required)>'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-rspec-1.11.1/lib/async/rspec/reactor.rb:55:in `block (2 levels) in run_example'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:74:in `block in initialize'
7.3) Failure/Error: Truffle::Interop.execute_without_conversion(function, *args)
RuntimeError:
Cannot convert LLVMTypedForeignObject+0x0 to LLVMNativePointer (IllegalStateException)
from java.lang.Throwable.<init>(Throwable.java:287)
from java.lang.Exception.<init>(Exception.java:84)
from java.lang.RuntimeException.<init>(RuntimeException.java:80)
from java.lang.IllegalStateException.<init>(IllegalStateException.java:75)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode$LLVMObjectToNativeNode.transitionToNative(LLVMToNativeNode.java:117)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen$LLVMObjectToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:194)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode.doOther(LLVMToNativeNode.java:78)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:46)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNode.doAddress(LLVMPointerStoreNode.java:68)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNodeGen.execute_generic1(LLVMPointerStoreNodeGen.java:165)
Caused by:
Message not supported: TO_NATIVE (UnsupportedMessageException)
from java.lang.Throwable.<init>(Throwable.java:265)
from java.lang.Exception.<init>(Exception.java:66)
from com.oracle.truffle.api.interop.InteropException.<init>(InteropException.java:52)
from com.oracle.truffle.api.interop.UnsupportedMessageException.<init>(UnsupportedMessageException.java:57)
from com.oracle.truffle.api.interop.UnsupportedMessageException.raise(UnsupportedMessageException.java:84)
from org.truffleruby.interop.RubyMessageResolution$ForeignToNativeNode.access(RubyMessageResolution.java:190)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode.accessWithTarget(RubyMessageResolutionForeign.java:503)
from org.truffleruby.interop.RubyMessageResolutionForeignFactory$ForeignToNativeSubNodeGen.executeWithTarget(RubyMessageResolutionForeignFactory.java:585)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode$TO_NATIVERootNode.execute(RubyMessageResolutionForeign.java:520)
from org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:289)
Translated to internal error
# /Users/samuel/.rvm/rubies/truffleruby-1.0.0-rc9/lib/truffle/truffle/cext.rb:221:in `execute_without_conversion'
# /Users/samuel/.rvm/rubies/truffleruby-1.0.0-rc9/lib/truffle/truffle/cext.rb:221:in `execute_with_mutex'
# /Users/samuel/.rvm/rubies/truffleruby-1.0.0-rc9/lib/truffle/truffle/cext_ruby.rb:36:in `close'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/debug/selector.rb:73:in `close'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/reactor.rb:208:in `close'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-rspec-1.11.1/lib/async/rspec/reactor.rb:84:in `block (2 levels) in RSpec'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-rspec-1.11.1/lib/async/rspec/leaks.rb:42:in `block (2 levels) in RSpec'
8) Falcon::Server http client GET / generates successful response
Got 0 failures and 3 other errors:
8.1) Failure/Error: server_task = reactor.async do
RuntimeError:
Cannot convert LLVMTypedForeignObject+0x0 to LLVMNativePointer (IllegalStateException)
from java.lang.Throwable.<init>(Throwable.java:287)
from java.lang.Exception.<init>(Exception.java:84)
from java.lang.RuntimeException.<init>(RuntimeException.java:80)
from java.lang.IllegalStateException.<init>(IllegalStateException.java:75)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode$LLVMObjectToNativeNode.transitionToNative(LLVMToNativeNode.java:117)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen$LLVMObjectToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:194)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode.doOther(LLVMToNativeNode.java:78)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:46)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNode.doAddress(LLVMPointerStoreNode.java:68)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNodeGen.execute_generic1(LLVMPointerStoreNodeGen.java:165)
Caused by:
Message not supported: TO_NATIVE (UnsupportedMessageException)
from java.lang.Throwable.<init>(Throwable.java:265)
from java.lang.Exception.<init>(Exception.java:66)
from com.oracle.truffle.api.interop.InteropException.<init>(InteropException.java:52)
from com.oracle.truffle.api.interop.UnsupportedMessageException.<init>(UnsupportedMessageException.java:57)
from com.oracle.truffle.api.interop.UnsupportedMessageException.raise(UnsupportedMessageException.java:84)
from org.truffleruby.interop.RubyMessageResolution$ForeignToNativeNode.access(RubyMessageResolution.java:190)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode.accessWithTarget(RubyMessageResolutionForeign.java:503)
from org.truffleruby.interop.RubyMessageResolutionForeignFactory$ForeignToNativeSubNodeGen.executeWithTarget(RubyMessageResolutionForeignFactory.java:585)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode$TO_NATIVERootNode.execute(RubyMessageResolutionForeign.java:520)
from org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:289)
Translated to internal error
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:85:in `internal_raise'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:85:in `raise'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:85:in `block in initialize'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:117:in `resume'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:117:in `run'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/reactor.rb:104:in `async'
# ./spec/spec_helper.rb:33:in `server_task'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-rspec-1.11.1/lib/async/rspec/reactor.rb:55:in `block (2 levels) in run_example'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:74:in `block in initialize'
8.2) Failure/Error: server_task = reactor.async do
RuntimeError:
Cannot convert LLVMTypedForeignObject+0x0 to LLVMNativePointer (IllegalStateException)
from java.lang.Throwable.<init>(Throwable.java:287)
from java.lang.Exception.<init>(Exception.java:84)
from java.lang.RuntimeException.<init>(RuntimeException.java:80)
from java.lang.IllegalStateException.<init>(IllegalStateException.java:75)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode$LLVMObjectToNativeNode.transitionToNative(LLVMToNativeNode.java:117)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen$LLVMObjectToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:194)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode.doOther(LLVMToNativeNode.java:78)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:46)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNode.doAddress(LLVMPointerStoreNode.java:68)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNodeGen.execute_generic1(LLVMPointerStoreNodeGen.java:165)
Caused by:
Message not supported: TO_NATIVE (UnsupportedMessageException)
from java.lang.Throwable.<init>(Throwable.java:265)
from java.lang.Exception.<init>(Exception.java:66)
from com.oracle.truffle.api.interop.InteropException.<init>(InteropException.java:52)
from com.oracle.truffle.api.interop.UnsupportedMessageException.<init>(UnsupportedMessageException.java:57)
from com.oracle.truffle.api.interop.UnsupportedMessageException.raise(UnsupportedMessageException.java:84)
from org.truffleruby.interop.RubyMessageResolution$ForeignToNativeNode.access(RubyMessageResolution.java:190)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode.accessWithTarget(RubyMessageResolutionForeign.java:503)
from org.truffleruby.interop.RubyMessageResolutionForeignFactory$ForeignToNativeSubNodeGen.executeWithTarget(RubyMessageResolutionForeignFactory.java:585)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode$TO_NATIVERootNode.execute(RubyMessageResolutionForeign.java:520)
from org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:289)
Translated to internal error
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:85:in `internal_raise'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:85:in `raise'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:85:in `block in initialize'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:117:in `resume'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:117:in `run'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/reactor.rb:104:in `async'
# ./spec/spec_helper.rb:33:in `server_task'
# ./spec/spec_helper.rb:39:in `block (2 levels) in <top (required)>'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-rspec-1.11.1/lib/async/rspec/reactor.rb:55:in `block (2 levels) in run_example'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:74:in `block in initialize'
8.3) Failure/Error: Truffle::Interop.execute_without_conversion(function, *args)
RuntimeError:
Cannot convert LLVMTypedForeignObject+0x0 to LLVMNativePointer (IllegalStateException)
from java.lang.Throwable.<init>(Throwable.java:287)
from java.lang.Exception.<init>(Exception.java:84)
from java.lang.RuntimeException.<init>(RuntimeException.java:80)
from java.lang.IllegalStateException.<init>(IllegalStateException.java:75)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode$LLVMObjectToNativeNode.transitionToNative(LLVMToNativeNode.java:117)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen$LLVMObjectToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:194)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode.doOther(LLVMToNativeNode.java:78)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:46)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNode.doAddress(LLVMPointerStoreNode.java:68)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNodeGen.execute_generic1(LLVMPointerStoreNodeGen.java:165)
Caused by:
Message not supported: TO_NATIVE (UnsupportedMessageException)
from java.lang.Throwable.<init>(Throwable.java:265)
from java.lang.Exception.<init>(Exception.java:66)
from com.oracle.truffle.api.interop.InteropException.<init>(InteropException.java:52)
from com.oracle.truffle.api.interop.UnsupportedMessageException.<init>(UnsupportedMessageException.java:57)
from com.oracle.truffle.api.interop.UnsupportedMessageException.raise(UnsupportedMessageException.java:84)
from org.truffleruby.interop.RubyMessageResolution$ForeignToNativeNode.access(RubyMessageResolution.java:190)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode.accessWithTarget(RubyMessageResolutionForeign.java:503)
from org.truffleruby.interop.RubyMessageResolutionForeignFactory$ForeignToNativeSubNodeGen.executeWithTarget(RubyMessageResolutionForeignFactory.java:585)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode$TO_NATIVERootNode.execute(RubyMessageResolutionForeign.java:520)
from org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:289)
Translated to internal error
# /Users/samuel/.rvm/rubies/truffleruby-1.0.0-rc9/lib/truffle/truffle/cext.rb:221:in `execute_without_conversion'
# /Users/samuel/.rvm/rubies/truffleruby-1.0.0-rc9/lib/truffle/truffle/cext.rb:221:in `execute_with_mutex'
# /Users/samuel/.rvm/rubies/truffleruby-1.0.0-rc9/lib/truffle/truffle/cext_ruby.rb:36:in `close'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/debug/selector.rb:73:in `close'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/reactor.rb:208:in `close'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-rspec-1.11.1/lib/async/rspec/reactor.rb:84:in `block (2 levels) in RSpec'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-rspec-1.11.1/lib/async/rspec/leaks.rb:42:in `block (2 levels) in RSpec'
9) Falcon::Server http client GET / generates server and date headers
Got 0 failures and 3 other errors:
9.1) Failure/Error: server_task = reactor.async do
RuntimeError:
Cannot convert LLVMTypedForeignObject+0x0 to LLVMNativePointer (IllegalStateException)
from java.lang.Throwable.<init>(Throwable.java:287)
from java.lang.Exception.<init>(Exception.java:84)
from java.lang.RuntimeException.<init>(RuntimeException.java:80)
from java.lang.IllegalStateException.<init>(IllegalStateException.java:75)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode$LLVMObjectToNativeNode.transitionToNative(LLVMToNativeNode.java:117)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen$LLVMObjectToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:194)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode.doOther(LLVMToNativeNode.java:78)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:46)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNode.doAddress(LLVMPointerStoreNode.java:68)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNodeGen.execute_generic1(LLVMPointerStoreNodeGen.java:165)
Caused by:
Message not supported: TO_NATIVE (UnsupportedMessageException)
from java.lang.Throwable.<init>(Throwable.java:265)
from java.lang.Exception.<init>(Exception.java:66)
from com.oracle.truffle.api.interop.InteropException.<init>(InteropException.java:52)
from com.oracle.truffle.api.interop.UnsupportedMessageException.<init>(UnsupportedMessageException.java:57)
from com.oracle.truffle.api.interop.UnsupportedMessageException.raise(UnsupportedMessageException.java:84)
from org.truffleruby.interop.RubyMessageResolution$ForeignToNativeNode.access(RubyMessageResolution.java:190)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode.accessWithTarget(RubyMessageResolutionForeign.java:503)
from org.truffleruby.interop.RubyMessageResolutionForeignFactory$ForeignToNativeSubNodeGen.executeWithTarget(RubyMessageResolutionForeignFactory.java:585)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode$TO_NATIVERootNode.execute(RubyMessageResolutionForeign.java:520)
from org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:289)
Translated to internal error
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:85:in `internal_raise'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:85:in `raise'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:85:in `block in initialize'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:117:in `resume'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:117:in `run'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/reactor.rb:104:in `async'
# ./spec/spec_helper.rb:33:in `server_task'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-rspec-1.11.1/lib/async/rspec/reactor.rb:55:in `block (2 levels) in run_example'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:74:in `block in initialize'
9.2) Failure/Error: server_task = reactor.async do
RuntimeError:
Cannot convert LLVMTypedForeignObject+0x0 to LLVMNativePointer (IllegalStateException)
from java.lang.Throwable.<init>(Throwable.java:287)
from java.lang.Exception.<init>(Exception.java:84)
from java.lang.RuntimeException.<init>(RuntimeException.java:80)
from java.lang.IllegalStateException.<init>(IllegalStateException.java:75)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode$LLVMObjectToNativeNode.transitionToNative(LLVMToNativeNode.java:117)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen$LLVMObjectToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:194)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode.doOther(LLVMToNativeNode.java:78)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:46)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNode.doAddress(LLVMPointerStoreNode.java:68)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNodeGen.execute_generic1(LLVMPointerStoreNodeGen.java:165)
Caused by:
Message not supported: TO_NATIVE (UnsupportedMessageException)
from java.lang.Throwable.<init>(Throwable.java:265)
from java.lang.Exception.<init>(Exception.java:66)
from com.oracle.truffle.api.interop.InteropException.<init>(InteropException.java:52)
from com.oracle.truffle.api.interop.UnsupportedMessageException.<init>(UnsupportedMessageException.java:57)
from com.oracle.truffle.api.interop.UnsupportedMessageException.raise(UnsupportedMessageException.java:84)
from org.truffleruby.interop.RubyMessageResolution$ForeignToNativeNode.access(RubyMessageResolution.java:190)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode.accessWithTarget(RubyMessageResolutionForeign.java:503)
from org.truffleruby.interop.RubyMessageResolutionForeignFactory$ForeignToNativeSubNodeGen.executeWithTarget(RubyMessageResolutionForeignFactory.java:585)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode$TO_NATIVERootNode.execute(RubyMessageResolutionForeign.java:520)
from org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:289)
Translated to internal error
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:85:in `internal_raise'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:85:in `raise'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:85:in `block in initialize'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:117:in `resume'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:117:in `run'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/reactor.rb:104:in `async'
# ./spec/spec_helper.rb:33:in `server_task'
# ./spec/spec_helper.rb:39:in `block (2 levels) in <top (required)>'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-rspec-1.11.1/lib/async/rspec/reactor.rb:55:in `block (2 levels) in run_example'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:74:in `block in initialize'
9.3) Failure/Error: Truffle::Interop.execute_without_conversion(function, *args)
RuntimeError:
Cannot convert LLVMTypedForeignObject+0x0 to LLVMNativePointer (IllegalStateException)
from java.lang.Throwable.<init>(Throwable.java:287)
from java.lang.Exception.<init>(Exception.java:84)
from java.lang.RuntimeException.<init>(RuntimeException.java:80)
from java.lang.IllegalStateException.<init>(IllegalStateException.java:75)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode$LLVMObjectToNativeNode.transitionToNative(LLVMToNativeNode.java:117)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen$LLVMObjectToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:194)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode.doOther(LLVMToNativeNode.java:78)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:46)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNode.doAddress(LLVMPointerStoreNode.java:68)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNodeGen.execute_generic1(LLVMPointerStoreNodeGen.java:165)
Caused by:
Message not supported: TO_NATIVE (UnsupportedMessageException)
from java.lang.Throwable.<init>(Throwable.java:265)
from java.lang.Exception.<init>(Exception.java:66)
from com.oracle.truffle.api.interop.InteropException.<init>(InteropException.java:52)
from com.oracle.truffle.api.interop.UnsupportedMessageException.<init>(UnsupportedMessageException.java:57)
from com.oracle.truffle.api.interop.UnsupportedMessageException.raise(UnsupportedMessageException.java:84)
from org.truffleruby.interop.RubyMessageResolution$ForeignToNativeNode.access(RubyMessageResolution.java:190)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode.accessWithTarget(RubyMessageResolutionForeign.java:503)
from org.truffleruby.interop.RubyMessageResolutionForeignFactory$ForeignToNativeSubNodeGen.executeWithTarget(RubyMessageResolutionForeignFactory.java:585)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode$TO_NATIVERootNode.execute(RubyMessageResolutionForeign.java:520)
from org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:289)
Translated to internal error
# /Users/samuel/.rvm/rubies/truffleruby-1.0.0-rc9/lib/truffle/truffle/cext.rb:221:in `execute_without_conversion'
# /Users/samuel/.rvm/rubies/truffleruby-1.0.0-rc9/lib/truffle/truffle/cext.rb:221:in `execute_with_mutex'
# /Users/samuel/.rvm/rubies/truffleruby-1.0.0-rc9/lib/truffle/truffle/cext_ruby.rb:36:in `close'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/debug/selector.rb:73:in `close'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/reactor.rb:208:in `close'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-rspec-1.11.1/lib/async/rspec/reactor.rb:84:in `block (2 levels) in RSpec'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-rspec-1.11.1/lib/async/rspec/leaks.rb:42:in `block (2 levels) in RSpec'
10) Falcon::Server broken middleware results in a 500 error if middleware raises an exception
Got 0 failures and 3 other errors:
10.1) Failure/Error: server_task = reactor.async do
RuntimeError:
Cannot convert LLVMTypedForeignObject+0x0 to LLVMNativePointer (IllegalStateException)
from java.lang.Throwable.<init>(Throwable.java:287)
from java.lang.Exception.<init>(Exception.java:84)
from java.lang.RuntimeException.<init>(RuntimeException.java:80)
from java.lang.IllegalStateException.<init>(IllegalStateException.java:75)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode$LLVMObjectToNativeNode.transitionToNative(LLVMToNativeNode.java:117)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen$LLVMObjectToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:194)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode.doOther(LLVMToNativeNode.java:78)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:46)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNode.doAddress(LLVMPointerStoreNode.java:68)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNodeGen.execute_generic1(LLVMPointerStoreNodeGen.java:165)
Caused by:
Message not supported: TO_NATIVE (UnsupportedMessageException)
from java.lang.Throwable.<init>(Throwable.java:265)
from java.lang.Exception.<init>(Exception.java:66)
from com.oracle.truffle.api.interop.InteropException.<init>(InteropException.java:52)
from com.oracle.truffle.api.interop.UnsupportedMessageException.<init>(UnsupportedMessageException.java:57)
from com.oracle.truffle.api.interop.UnsupportedMessageException.raise(UnsupportedMessageException.java:84)
from org.truffleruby.interop.RubyMessageResolution$ForeignToNativeNode.access(RubyMessageResolution.java:190)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode.accessWithTarget(RubyMessageResolutionForeign.java:503)
from org.truffleruby.interop.RubyMessageResolutionForeignFactory$ForeignToNativeSubNodeGen.executeWithTarget(RubyMessageResolutionForeignFactory.java:585)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode$TO_NATIVERootNode.execute(RubyMessageResolutionForeign.java:520)
from org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:289)
Translated to internal error
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:85:in `internal_raise'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:85:in `raise'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:85:in `block in initialize'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:117:in `resume'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:117:in `run'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/reactor.rb:104:in `async'
# ./spec/spec_helper.rb:33:in `server_task'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-rspec-1.11.1/lib/async/rspec/reactor.rb:55:in `block (2 levels) in run_example'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:74:in `block in initialize'
10.2) Failure/Error: server_task = reactor.async do
RuntimeError:
Cannot convert LLVMTypedForeignObject+0x0 to LLVMNativePointer (IllegalStateException)
from java.lang.Throwable.<init>(Throwable.java:287)
from java.lang.Exception.<init>(Exception.java:84)
from java.lang.RuntimeException.<init>(RuntimeException.java:80)
from java.lang.IllegalStateException.<init>(IllegalStateException.java:75)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode$LLVMObjectToNativeNode.transitionToNative(LLVMToNativeNode.java:117)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen$LLVMObjectToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:194)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode.doOther(LLVMToNativeNode.java:78)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:46)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNode.doAddress(LLVMPointerStoreNode.java:68)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNodeGen.execute_generic1(LLVMPointerStoreNodeGen.java:165)
Caused by:
Message not supported: TO_NATIVE (UnsupportedMessageException)
from java.lang.Throwable.<init>(Throwable.java:265)
from java.lang.Exception.<init>(Exception.java:66)
from com.oracle.truffle.api.interop.InteropException.<init>(InteropException.java:52)
from com.oracle.truffle.api.interop.UnsupportedMessageException.<init>(UnsupportedMessageException.java:57)
from com.oracle.truffle.api.interop.UnsupportedMessageException.raise(UnsupportedMessageException.java:84)
from org.truffleruby.interop.RubyMessageResolution$ForeignToNativeNode.access(RubyMessageResolution.java:190)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode.accessWithTarget(RubyMessageResolutionForeign.java:503)
from org.truffleruby.interop.RubyMessageResolutionForeignFactory$ForeignToNativeSubNodeGen.executeWithTarget(RubyMessageResolutionForeignFactory.java:585)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode$TO_NATIVERootNode.execute(RubyMessageResolutionForeign.java:520)
from org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:289)
Translated to internal error
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:85:in `internal_raise'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:85:in `raise'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:85:in `block in initialize'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:117:in `resume'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:117:in `run'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/reactor.rb:104:in `async'
# ./spec/spec_helper.rb:33:in `server_task'
# ./spec/spec_helper.rb:39:in `block (2 levels) in <top (required)>'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-rspec-1.11.1/lib/async/rspec/reactor.rb:55:in `block (2 levels) in run_example'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:74:in `block in initialize'
10.3) Failure/Error: Truffle::Interop.execute_without_conversion(function, *args)
RuntimeError:
Cannot convert LLVMTypedForeignObject+0x0 to LLVMNativePointer (IllegalStateException)
from java.lang.Throwable.<init>(Throwable.java:287)
from java.lang.Exception.<init>(Exception.java:84)
from java.lang.RuntimeException.<init>(RuntimeException.java:80)
from java.lang.IllegalStateException.<init>(IllegalStateException.java:75)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode$LLVMObjectToNativeNode.transitionToNative(LLVMToNativeNode.java:117)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen$LLVMObjectToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:194)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode.doOther(LLVMToNativeNode.java:78)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:46)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNode.doAddress(LLVMPointerStoreNode.java:68)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNodeGen.execute_generic1(LLVMPointerStoreNodeGen.java:165)
Caused by:
Message not supported: TO_NATIVE (UnsupportedMessageException)
from java.lang.Throwable.<init>(Throwable.java:265)
from java.lang.Exception.<init>(Exception.java:66)
from com.oracle.truffle.api.interop.InteropException.<init>(InteropException.java:52)
from com.oracle.truffle.api.interop.UnsupportedMessageException.<init>(UnsupportedMessageException.java:57)
from com.oracle.truffle.api.interop.UnsupportedMessageException.raise(UnsupportedMessageException.java:84)
from org.truffleruby.interop.RubyMessageResolution$ForeignToNativeNode.access(RubyMessageResolution.java:190)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode.accessWithTarget(RubyMessageResolutionForeign.java:503)
from org.truffleruby.interop.RubyMessageResolutionForeignFactory$ForeignToNativeSubNodeGen.executeWithTarget(RubyMessageResolutionForeignFactory.java:585)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode$TO_NATIVERootNode.execute(RubyMessageResolutionForeign.java:520)
from org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:289)
Translated to internal error
# /Users/samuel/.rvm/rubies/truffleruby-1.0.0-rc9/lib/truffle/truffle/cext.rb:221:in `execute_without_conversion'
# /Users/samuel/.rvm/rubies/truffleruby-1.0.0-rc9/lib/truffle/truffle/cext.rb:221:in `execute_with_mutex'
# /Users/samuel/.rvm/rubies/truffleruby-1.0.0-rc9/lib/truffle/truffle/cext_ruby.rb:36:in `close'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/debug/selector.rb:73:in `close'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/reactor.rb:208:in `close'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-rspec-1.11.1/lib/async/rspec/reactor.rb:84:in `block (2 levels) in RSpec'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-rspec-1.11.1/lib/async/rspec/leaks.rb:42:in `block (2 levels) in RSpec'
11) Falcon::Server with SSL basic middleware client can get resource
Failure/Error: Truffle::Interop.execute_without_conversion(function, *args)
RuntimeError:
Cannot convert LLVMTypedForeignObject+0x0 to LLVMNativePointer (IllegalStateException)
from java.lang.Throwable.<init>(Throwable.java:287)
from java.lang.Exception.<init>(Exception.java:84)
from java.lang.RuntimeException.<init>(RuntimeException.java:80)
from java.lang.IllegalStateException.<init>(IllegalStateException.java:75)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode$LLVMObjectToNativeNode.transitionToNative(LLVMToNativeNode.java:117)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen$LLVMObjectToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:194)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode.doOther(LLVMToNativeNode.java:78)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:46)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNode.doAddress(LLVMPointerStoreNode.java:68)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNodeGen.execute_generic1(LLVMPointerStoreNodeGen.java:165)
Caused by:
Message not supported: TO_NATIVE (UnsupportedMessageException)
from java.lang.Throwable.<init>(Throwable.java:265)
from java.lang.Exception.<init>(Exception.java:66)
from com.oracle.truffle.api.interop.InteropException.<init>(InteropException.java:52)
from com.oracle.truffle.api.interop.UnsupportedMessageException.<init>(UnsupportedMessageException.java:57)
from com.oracle.truffle.api.interop.UnsupportedMessageException.raise(UnsupportedMessageException.java:84)
from org.truffleruby.interop.RubyMessageResolution$ForeignToNativeNode.access(RubyMessageResolution.java:190)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode.accessWithTarget(RubyMessageResolutionForeign.java:503)
from org.truffleruby.interop.RubyMessageResolutionForeignFactory$ForeignToNativeSubNodeGen.executeWithTarget(RubyMessageResolutionForeignFactory.java:585)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode$TO_NATIVERootNode.execute(RubyMessageResolutionForeign.java:520)
from org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:289)
Translated to internal error
# /Users/samuel/.rvm/rubies/truffleruby-1.0.0-rc9/lib/truffle/truffle/cext.rb:221:in `execute_without_conversion'
# /Users/samuel/.rvm/rubies/truffleruby-1.0.0-rc9/lib/truffle/truffle/cext.rb:221:in `execute_with_mutex'
# /Users/samuel/.rvm/rubies/truffleruby-1.0.0-rc9/lib/truffle/truffle/cext_ruby.rb:36:in `close'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/debug/selector.rb:73:in `close'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/reactor.rb:208:in `close'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-rspec-1.11.1/lib/async/rspec/reactor.rb:84:in `block (2 levels) in RSpec'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-rspec-1.11.1/lib/async/rspec/leaks.rb:42:in `block (2 levels) in RSpec'
12) Falcon::Server can start server
Got 0 failures and 2 other errors:
12.1) Failure/Error: server_task = reactor.async do
RuntimeError:
Cannot convert LLVMTypedForeignObject+0x0 to LLVMNativePointer (IllegalStateException)
from java.lang.Throwable.<init>(Throwable.java:287)
from java.lang.Exception.<init>(Exception.java:84)
from java.lang.RuntimeException.<init>(RuntimeException.java:80)
from java.lang.IllegalStateException.<init>(IllegalStateException.java:75)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode$LLVMObjectToNativeNode.transitionToNative(LLVMToNativeNode.java:117)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen$LLVMObjectToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:194)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode.doOther(LLVMToNativeNode.java:78)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:46)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNode.doAddress(LLVMPointerStoreNode.java:68)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNodeGen.execute_generic1(LLVMPointerStoreNodeGen.java:165)
Caused by:
Message not supported: TO_NATIVE (UnsupportedMessageException)
from java.lang.Throwable.<init>(Throwable.java:265)
from java.lang.Exception.<init>(Exception.java:66)
from com.oracle.truffle.api.interop.InteropException.<init>(InteropException.java:52)
from com.oracle.truffle.api.interop.UnsupportedMessageException.<init>(UnsupportedMessageException.java:57)
from com.oracle.truffle.api.interop.UnsupportedMessageException.raise(UnsupportedMessageException.java:84)
from org.truffleruby.interop.RubyMessageResolution$ForeignToNativeNode.access(RubyMessageResolution.java:190)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode.accessWithTarget(RubyMessageResolutionForeign.java:503)
from org.truffleruby.interop.RubyMessageResolutionForeignFactory$ForeignToNativeSubNodeGen.executeWithTarget(RubyMessageResolutionForeignFactory.java:585)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode$TO_NATIVERootNode.execute(RubyMessageResolutionForeign.java:520)
from org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:289)
Translated to internal error
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:85:in `internal_raise'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:85:in `raise'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:85:in `block in initialize'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:117:in `resume'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:117:in `run'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/reactor.rb:104:in `async'
# ./spec/rack/handler/falcon_spec.rb:37:in `block (2 levels) in <top (required)>'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-rspec-1.11.1/lib/async/rspec/reactor.rb:55:in `block (2 levels) in run_example'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/task.rb:74:in `block in initialize'
12.2) Failure/Error: Truffle::Interop.execute_without_conversion(function, *args)
RuntimeError:
Cannot convert LLVMTypedForeignObject+0x0 to LLVMNativePointer (IllegalStateException)
from java.lang.Throwable.<init>(Throwable.java:287)
from java.lang.Exception.<init>(Exception.java:84)
from java.lang.RuntimeException.<init>(RuntimeException.java:80)
from java.lang.IllegalStateException.<init>(IllegalStateException.java:75)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode$LLVMObjectToNativeNode.transitionToNative(LLVMToNativeNode.java:117)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen$LLVMObjectToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:194)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNode.doOther(LLVMToNativeNode.java:78)
from com.oracle.truffle.llvm.runtime.nodes.api.LLVMToNativeNodeGen.executeWithTarget(LLVMToNativeNodeGen.java:46)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNode.doAddress(LLVMPointerStoreNode.java:68)
from com.oracle.truffle.llvm.nodes.memory.store.LLVMPointerStoreNodeGen.execute_generic1(LLVMPointerStoreNodeGen.java:165)
Caused by:
Message not supported: TO_NATIVE (UnsupportedMessageException)
from java.lang.Throwable.<init>(Throwable.java:265)
from java.lang.Exception.<init>(Exception.java:66)
from com.oracle.truffle.api.interop.InteropException.<init>(InteropException.java:52)
from com.oracle.truffle.api.interop.UnsupportedMessageException.<init>(UnsupportedMessageException.java:57)
from com.oracle.truffle.api.interop.UnsupportedMessageException.raise(UnsupportedMessageException.java:84)
from org.truffleruby.interop.RubyMessageResolution$ForeignToNativeNode.access(RubyMessageResolution.java:190)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode.accessWithTarget(RubyMessageResolutionForeign.java:503)
from org.truffleruby.interop.RubyMessageResolutionForeignFactory$ForeignToNativeSubNodeGen.executeWithTarget(RubyMessageResolutionForeignFactory.java:585)
from org.truffleruby.interop.RubyMessageResolutionForeign$ForeignToNativeSubNode$TO_NATIVERootNode.execute(RubyMessageResolutionForeign.java:520)
from org.graalvm.compiler.truffle.runtime.OptimizedCallTarget.callProxy(OptimizedCallTarget.java:289)
Translated to internal error
# /Users/samuel/.rvm/rubies/truffleruby-1.0.0-rc9/lib/truffle/truffle/cext.rb:221:in `execute_without_conversion'
# /Users/samuel/.rvm/rubies/truffleruby-1.0.0-rc9/lib/truffle/truffle/cext.rb:221:in `execute_with_mutex'
# /Users/samuel/.rvm/rubies/truffleruby-1.0.0-rc9/lib/truffle/truffle/cext_ruby.rb:36:in `close'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/debug/selector.rb:73:in `close'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-1.10.3/lib/async/reactor.rb:208:in `close'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-rspec-1.11.1/lib/async/rspec/reactor.rb:84:in `block (2 levels) in RSpec'
# /Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-rspec-1.11.1/lib/async/rspec/leaks.rb:42:in `block (2 levels) in RSpec'
Finished in 8.53 seconds (files took 3.97 seconds to load)
40 examples, 12 failures
Failed examples:
rspec ./spec/falcon/adapters/rack_spec.rb:51 # Falcon::Adapters::Rack HTTP_HOST get valid HTTP_HOST
rspec ./spec/falcon/adapters/rack_spec.rb:80 # Falcon::Adapters::Rack websockets can send and receive messages using websockets
rspec ./spec/falcon/command/serve_spec.rb:24 # Falcon::Command::Serve can listen on specified port
rspec ./spec/falcon/proxy_spec.rb:38 # Falcon::Proxy can select client based on authority
rspec ./spec/falcon/proxy_spec.rb:53 # Falcon::Proxy defers if no host is available
rspec ./spec/falcon/server_spec.rb:58 # Falcon::Server http client can POST application/x-www-form-urlencoded
rspec ./spec/falcon/server_spec.rb:65 # Falcon::Server http client can POST multipart/form-data
rspec ./spec/falcon/server_spec.rb:46 # Falcon::Server http client GET / generates successful response
rspec ./spec/falcon/server_spec.rb:51 # Falcon::Server http client GET / generates server and date headers
rspec ./spec/falcon/server_spec.rb:80 # Falcon::Server broken middleware results in a 500 error if middleware raises an exception
rspec ./spec/falcon/ssl_server_spec.rb:62 # Falcon::Server with SSL basic middleware client can get resource
rspec ./spec/rack/handler/falcon_spec.rb:36 # Falcon::Server can start server
If I specify NIO4R_PURE=true, it still fails, but it's due to timeout because sever didn't respond. Not sure why.
It seems like Async::Reactor issue or something wrong at IO layer. Let me check.
So you got similar results to me but I decreased timeout to 1s to avoid waiting a long time to fail.
Let me dissect it a bit:
# Async::TimeoutError:
# run time exceeded duration 60s:
# <Async::Reactor:0x1a74 stopped=false>
# <Async::Task:0x1a78 RSpec::ExampleGroups::FalconAdaptersRack::Websockets status=running>
# <Async::Task:0x1a7c timer task duration=60 status=running>
# <Async::Task:0x1a80 connecting to #<Addrinfo: 127.0.0.1:9294 TCP> status=running>
# <Async::Task:0x1a84 status=complete>
# <Async::Task:0x1a88 accepting connections #<Addrinfo: 127.0.0.1:9294 TCP> status=running>
# <Async::Task:0x1a8c incoming connection #<Addrinfo: 127.0.0.1:51771 TCP> status=running>
This is actually the hierarchy of concurrent tasks within async.
We can see it was accepting connections and that it had one incoming connection.
That's good.
But for some reason, data was not flowing.
Not sure why yet.
Okay, so async is all green.
> NIO4R_PURE=true rspec
/Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-rspec-1.11.1/lib/async/rspec/reactor.rb:39: warning: shadowing outer local variable - task
/Users/samuel/.rvm/gems/truffleruby-1.0.0-rc9/gems/async-rspec-1.11.1/lib/async/rspec/memory/limit_allocations.rb:41: warning: shadowing outer local variable - count
/Users/samuel/Documents/socketry/async/spec/async/reactor/nested_spec.rb:29: warning: shadowing outer local variable - task
/Users/samuel/Documents/socketry/async/spec/async/reactor/nested_spec.rb:43: warning: shadowing outer local variable - task
/Users/samuel/Documents/socketry/async/spec/async/task_spec.rb:28: warning: shadowing outer local variable - task
/Users/samuel/Documents/socketry/async/spec/async/task_spec.rb:52: warning: shadowing outer local variable - task
/Users/samuel/Documents/socketry/async/spec/async/task_spec.rb:63: warning: shadowing outer local variable - task
/Users/samuel/Documents/socketry/async/spec/async/task_spec.rb:79: warning: shadowing outer local variable - task
/Users/samuel/Documents/socketry/async/spec/async/task_spec.rb:93: warning: shadowing outer local variable - task
/Users/samuel/Documents/socketry/async/spec/async/task_spec.rb:95: warning: shadowing outer local variable - task
/Users/samuel/Documents/socketry/async/spec/async/task_spec.rb:118: warning: shadowing outer local variable - task
/Users/samuel/Documents/socketry/async/spec/async/task_spec.rb:119: warning: shadowing outer local variable - task
/Users/samuel/Documents/socketry/async/spec/async/task_spec.rb:138: warning: shadowing outer local variable - task
/Users/samuel/Documents/socketry/async/spec/async/task_spec.rb:158: warning: shadowing outer local variable - task
/Users/samuel/Documents/socketry/async/spec/async/task_spec.rb:178: warning: shadowing outer local variable - task
Async::Clock
can measure durations
can get current offset
Async::Condition
should continue after condition is signalled
behaves like Async::Condition
can signal waiting task
should be able to signal stopped task
#<Logger:0x232c>
::default_log_level
should set default log level
should set default log level based on $DEBUG
should set default log level based on $VERBOSE
Async::Node
#parent=
should construct nested tree
should break nested tree
can consume bottom to top
#print_hierarchy
can print hierarchy to bufffer
#consume
can't consume middle node
#annotate
should have no annotation by default
should output annotation when invoking #to_s
can assign annotation
Async::Notification
should continue after notification is signalled
behaves like Async::Condition
can signal waiting task
should be able to signal stopped task
Async::Wrapper
Warming up --------------------------------------
Wrapper#wait_readable
62.000 i/100ms
Reactor#register 90.000 i/100ms
Calculating -------------------------------------
Wrapper#wait_readable
4.723k (±51.8%) i/s - 14.322k in 5.031616s
Reactor#register 19.935k (±39.1%) i/s - 60.120k in 4.990682s
Comparison:
Reactor#register: 19935.3 i/s
Wrapper#wait_readable: 4722.6 i/s - 4.22x slower
should be fast to wait until readable
Async::Queue
should process items in order
Async::Reactor
::run (in existing reactor)
should nest reactor
::run
should nest reactor
Async::Reactor
can't return
is closed after running
should return a task
#run
can run tasks on different fibers
#stop
can be stop reactor
can stop reactor from different thread
#async
can pass in arguments
passes in the correct number of arguments
#timeout
stops immediately
#to_s
shows stopped=
Async::Semaphore
#async
should process work in batches
only allows one task at a time
allows tasks to execute concurrently
#count
should count number of current acquisitions
#limit
should have a default limit
#empty?
should be empty unless acquired
#blocking?
will be blocking when acquired
#acquire/#release
works when called without block
Async::Task
#run
can't be invoked twice
#async
can start child async tasks
can pass in arguments
#yield
can yield back to reactor
#stop
can be stopped
should kill direct child
should not remove running task
#sleep
can sleep for the requested duration
#timeout
will timeout if execution takes too long
won't timeout if execution completes in time
#wait
will wait on another task to complete
will propagate exceptions
#to_s
should show running
should show complete
Async::Wrapper
#wait_readable
can wait to be readable
can timeout if no event occurs
can wait for readability in sequential tasks
can be cancelled
#wait_writable
can wait to be writable
can be cancelled while waiting to be readable
can be cancelled
#wait_any
can wait for any events
can wait for readability in one task and writability in another
fails if waiting on from multiple tasks
#reactor=
can assign a wrapper to a reactor
assigns current reactor when waiting for events
#dup
dups the underlying io
#close
closes monitor when closing wrapper
can't wait on closed wrapper
Enumerator
should play well with Enumerator as internal iterator
should play well with Enumerator as external iterator (PENDING: expected failure)
should play well with Enumerator.zip(Enumerator) method (PENDING: expected failure)
should play with explicit Fiber usage (PENDING: expected failure)
Pending: (Failures listed here are expected and do not affect your suite's status)
1) Enumerator should play well with Enumerator as external iterator
# expected failure
Failure/Error: expect(ar[1]).to be == 2
expected: == 2
got: nil
# ./spec/enumerator_spec.rb:52:in `block (2 levels) in <top (required)>'
2) Enumerator should play well with Enumerator.zip(Enumerator) method
# expected failure
Failure/Error: raise
expected: == [[:a, 1], [:b, 2], [:c, nil], [:d, nil]]
got: [[:a, 1], [:b, nil], [:c, 2], [:d, nil]]
# ./lib/async/task.rb:85:in `block in initialize'
# ./lib/async/task.rb:117:in `resume'
# ./lib/async/task.rb:117:in `run'
# ./lib/async/reactor.rb:104:in `async'
# ./lib/async/reactor.rb:150:in `run'
# ./lib/async/reactor.rb:54:in `run'
# ./spec/enumerator_spec.rb:57:in `block (2 levels) in <top (required)>'
3) Enumerator should play with explicit Fiber usage
# expected failure
Failure/Error: expect(ar[1]).to be == 2
expected: == 2
got: nil
# ./spec/enumerator_spec.rb:77:in `block (2 levels) in <top (required)>'
Finished in 52.12 seconds (files took 1.87 seconds to load)
74 examples, 0 failures, 3 pending
async-io has soe failures.. it's the place to start digging.
Okay, so the problem is pretty simple:
truffleruby-1.0.0-rc9 :001 > $stdout.write_nonblock("Hello World")
Hello World => 11
truffleruby-1.0.0-rc9 :002 > $stdout.write_nonblock("Hello World", exception: false)
ArgumentError: wrong number of arguments (2 for 1)
from (irb):2:in `write_nonblock'
from (irb):2
from /Users/samuel/.rvm/rubies/truffleruby-1.0.0-rc9/bin/irb:29:in `<main>'
2.6.0-preview2 :001 > $stdout.write_nonblock("Hello World", exception: false)
Hello World => 11
Also, it doesn't seem like it's logging exceptions Exception#cause is not logged?
Okay so we are blocking on https://github.com/oracle/truffleruby/issues/1457
Hm, it's still not running under RC10 :(
@deepj What's not working? Could you post a backtrace?
The default nio4r mode is not expected to work yet (it's a C extension), but I thought it'd work with NIO4R_PURE=true.
@eregon
It fails inside async-io @ioquatix will know more about that
$ NIO4R_PURE=true falcon --verbose serve --threaded
config.ru:2: warning: `frozen_string_literal' is ignored after any tokens
config.ru:2: warning: `frozen_string_literal' is ignored after any tokens
config.ru:2: warning: `frozen_string_literal' is ignored after any tokens
config.ru:2: warning: `frozen_string_literal' is ignored after any tokens
D, [2018-12-10T15:34:35.060000 #7467] DEBUG -- Async::IO::Socket: Binding to #<Addrinfo: [::1]:9292 TCP>
D, [2018-12-10T15:34:35.291000 #7467] DEBUG -- Async::IO::Socket: Binding to #<Addrinfo: 127.0.0.1:9292 TCP>
D, [2018-12-10T15:34:35.299000 #7467] DEBUG -- <Async::Reactor:0xcfa stopped=false>: Exiting run-loop because finished.
I, [2018-12-10T15:34:35.317000 #7467] INFO -- : Falcon taking flight! Binding to #<Falcon::Endpoint https://localhost:9292/> [Async::Container::Threaded with concurrency: 4]
I, [2018-12-10T15:34:35.352000 #7467] INFO -- : Send `kill -USR1 7467` for detailed status :)
I, [2018-12-10T15:34:35.356000 #7467] INFO -- : Send `kill -USR1 7467` for detailed status :)
I, [2018-12-10T15:34:35.359000 #7467] INFO -- : Send `kill -USR1 7467` for detailed status :)
I, [2018-12-10T15:34:35.351000 #7467] INFO -- : Send `kill -USR1 7467` for detailed status :)
D, [2018-12-10T15:34:35.444000 #7467] DEBUG -- <Async::Task:0xd1c status=failed>: org.truffleruby.core.FinalizationService$FinalizerReference cannot be cast to com.oracle.truffle.api.interop.TruffleObject (ClassCastException)
from org.truffleruby.language.dispatch.UncachedDispatchNode.megamorphicForeignCall(UncachedDispatchNode.java:137)
from org.truffleruby.language.dispatch.UncachedDispatchNode.executeDispatch(UncachedDispatchNode.java:84)
from org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:43)
from org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:108)
from org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:99)
from org.truffleruby.core.cast.ToSNodeGen.execute(ToSNodeGen.java:31)
from org.truffleruby.core.string.InterpolatedStringNode.execute(InterpolatedStringNode.java:50)
from org.truffleruby.language.dispatch.RubyCallNode.executeArguments(RubyCallNode.java:129)
from org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:87)
from org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:34)
Translated to internal error (RuntimeError)
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `inspect'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `each'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `inspect'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `recursion_guard'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `inspect'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `inspect'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `each'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `inspect'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `recursion_guard'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `inspect'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `inspect'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `each'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `inspect'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `recursion_guard'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `inspect'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `block (2 levels) in bind'
~/.gem/truffleruby/2.4.4/gems/async-1.11.0/lib/async/task.rb:74:in `block in initialize'
D, [2018-12-10T15:34:35.449000 #7467] DEBUG -- <Async::Task:0xd22 status=failed>: org.truffleruby.core.FinalizationService$FinalizerReference cannot be cast to com.oracle.truffle.api.interop.TruffleObject (ClassCastException)
from org.truffleruby.language.dispatch.UncachedDispatchNode.megamorphicForeignCall(UncachedDispatchNode.java:137)
from org.truffleruby.language.dispatch.UncachedDispatchNode.executeDispatch(UncachedDispatchNode.java:84)
from org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:43)
from org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:108)
from org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:99)
from org.truffleruby.core.cast.ToSNodeGen.execute(ToSNodeGen.java:31)
from org.truffleruby.core.string.InterpolatedStringNode.execute(InterpolatedStringNode.java:50)
from org.truffleruby.language.dispatch.RubyCallNode.executeArguments(RubyCallNode.java:129)
from org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:87)
from org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:34)
Translated to internal error (RuntimeError)
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `inspect'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `each'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `inspect'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `recursion_guard'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `inspect'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `inspect'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `each'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `inspect'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `recursion_guard'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `inspect'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `inspect'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `each'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `inspect'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `recursion_guard'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `inspect'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `block (2 levels) in bind'
~/.gem/truffleruby/2.4.4/gems/async-1.11.0/lib/async/task.rb:74:in `block in initialize'
D, [2018-12-10T15:34:35.455000 #7467] DEBUG -- <Async::Task:0xd24 status=failed>: org.truffleruby.core.FinalizationService$FinalizerReference cannot be cast to com.oracle.truffle.api.interop.TruffleObject (ClassCastException)
from org.truffleruby.language.dispatch.UncachedDispatchNode.megamorphicForeignCall(UncachedDispatchNode.java:137)
from org.truffleruby.language.dispatch.UncachedDispatchNode.executeDispatch(UncachedDispatchNode.java:84)
from org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:43)
from org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:108)
from org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:99)
from org.truffleruby.core.cast.ToSNodeGen.execute(ToSNodeGen.java:31)
from org.truffleruby.core.string.InterpolatedStringNode.execute(InterpolatedStringNode.java:50)
from org.truffleruby.language.dispatch.RubyCallNode.executeArguments(RubyCallNode.java:129)
from org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:87)
from org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:34)
Translated to internal error (RuntimeError)
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `inspect'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `each'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `inspect'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `recursion_guard'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `inspect'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `inspect'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `each'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `inspect'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `recursion_guard'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `inspect'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `inspect'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `each'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `inspect'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `recursion_guard'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `inspect'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `block (2 levels) in bind'
~/.gem/truffleruby/2.4.4/gems/async-1.11.0/lib/async/task.rb:74:in `block in initialize'
D, [2018-12-10T15:34:35.457000 #7467] DEBUG -- <Async::Task:0xd28 status=failed>: org.truffleruby.core.FinalizationService$FinalizerReference cannot be cast to com.oracle.truffle.api.interop.TruffleObject (ClassCastException)
from org.truffleruby.language.dispatch.UncachedDispatchNode.megamorphicForeignCall(UncachedDispatchNode.java:137)
from org.truffleruby.language.dispatch.UncachedDispatchNode.executeDispatch(UncachedDispatchNode.java:84)
from org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:43)
from org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:108)
from org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:99)
from org.truffleruby.core.cast.ToSNodeGen.execute(ToSNodeGen.java:31)
from org.truffleruby.core.string.InterpolatedStringNode.execute(InterpolatedStringNode.java:50)
from org.truffleruby.language.dispatch.RubyCallNode.executeArguments(RubyCallNode.java:129)
from org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:87)
from org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:34)
Translated to internal error (RuntimeError)
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `inspect'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `each'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `inspect'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `recursion_guard'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `inspect'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `inspect'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `each'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `inspect'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `recursion_guard'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `inspect'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `inspect'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `each'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `inspect'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `recursion_guard'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `inspect'
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `block (2 levels) in bind'
~/.gem/truffleruby/2.4.4/gems/async-1.11.0/lib/async/task.rb:74:in `block in initialize'
D, [2018-12-10T15:34:35.466000 #7467] DEBUG -- <Async::Reactor:0xd2e stopped=false>: Exiting run-loop because #<RuntimeError: org.truffleruby.core.FinalizationService$FinalizerReference cannot be cast to com.oracle.truffle.api.interop.TruffleObject (ClassCastException)
from org.truffleruby.language.dispatch.UncachedDispatchNode.megamorphicForeignCall(UncachedDispatchNode.java:137)
from org.truffleruby.language.dispatch.UncachedDispatchNode.executeDispatch(UncachedDispatchNode.java:84)
from org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:43)
from org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:108)
from org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:99)
from org.truffleruby.core.cast.ToSNodeGen.execute(ToSNodeGen.java:31)
from org.truffleruby.core.string.InterpolatedStringNode.execute(InterpolatedStringNode.java:50)
from org.truffleruby.language.dispatch.RubyCallNode.executeArguments(RubyCallNode.java:129)
from org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:87)
from org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:34)
Translated to internal error>.
~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `inspect': org.truffleruby.core.FinalizationService$FinalizerReference cannot be cast to com.oracle.truffle.api.interop.TruffleObject (ClassCastException) (RuntimeError)
from org.truffleruby.language.dispatch.UncachedDispatchNode.megamorphicForeignCall(UncachedDispatchNode.java:137)
from org.truffleruby.language.dispatch.UncachedDispatchNode.executeDispatch(UncachedDispatchNode.java:84)
from org.truffleruby.language.dispatch.DispatchHeadNode.dispatch(DispatchHeadNode.java:43)
from org.truffleruby.language.dispatch.RubyCallNode.executeWithArgumentsEvaluated(RubyCallNode.java:108)
from org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:99)
from org.truffleruby.core.cast.ToSNodeGen.execute(ToSNodeGen.java:31)
from org.truffleruby.core.string.InterpolatedStringNode.execute(InterpolatedStringNode.java:50)
from org.truffleruby.language.dispatch.RubyCallNode.executeArguments(RubyCallNode.java:129)
from org.truffleruby.language.dispatch.RubyCallNode.execute(RubyCallNode.java:87)
from org.truffleruby.language.control.SequenceNode.execute(SequenceNode.java:34)
Translated to internal error
from ~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `each'
from ~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `inspect'
from ~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `recursion_guard'
from ~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `inspect'
from ~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `inspect'
from ~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `each'
from ~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `inspect'
from ~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `recursion_guard'
from ~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `inspect'
from ~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `inspect'
from ~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `each'
from ~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `inspect'
from ~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `recursion_guard'
from ~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `inspect'
from ~/.gem/truffleruby/2.4.4/gems/async-io-1.17.2/lib/async/io/shared_endpoint.rb:71:in `block (2 levels) in bind'
from ~/.gem/truffleruby/2.4.4/gems/async-1.11.0/lib/async/task.rb:74:in `block in initialize'
D, [2018-12-10T15:34:35.508000 #7467] DEBUG -- <Async::Reactor:0xd30 stopped=false>: Exiting run-loop because finished.
D, [2018-12-10T15:34:35.509000 #7467] DEBUG -- <Async::Reactor:0xd32 stopped=false>: Exiting run-loop because finished.
@deepj Thanks, I can reproduce with
NIO4R_PURE=true jt ruby -S falcon --verbose serve --threaded -n 1
It seems a bug related to finalizers, I'll dig into it.
@deepj The fix for finalizers should land soon.
The next issue is a bug on our side in the OpenSSL C-ext.
Running without HTTPS seems to work fine with:
NIO4R_PURE=true jt ruby -S falcon --verbose serve --bind http://localhost:9292 --threaded
@eregon Yes, I can confirm, it works without HTTPS. Anyway, good job. And sorry for the spamming of "issues" in the last few days :)
NIO4R_PURE=true falcon --verbose serve --bind http://localhost:9292 --threaded
config.ru:2: warning: `frozen_string_literal' is ignored after any tokens
config.ru:2: warning: `frozen_string_literal' is ignored after any tokens
config.ru:2: warning: `frozen_string_literal' is ignored after any tokens
config.ru:2: warning: `frozen_string_literal' is ignored after any tokens
D, [2018-12-10T19:11:47.162000 #9038] DEBUG -- Async::IO::Socket: Binding to #<Addrinfo: [::1]:9292 TCP>
D, [2018-12-10T19:11:47.208000 #9038] DEBUG -- Async::IO::Socket: Binding to #<Addrinfo: 127.0.0.1:9292 TCP>
D, [2018-12-10T19:11:47.230000 #9038] DEBUG -- <Async::Reactor:0xcfa stopped=false>: Exiting run-loop because finished.
I, [2018-12-10T19:11:47.242000 #9038] INFO -- : Falcon taking flight! Binding to #<Falcon::Endpoint http://localhost:9292/> [Async::Container::Threaded with concurrency: 4]
I, [2018-12-10T19:11:47.317000 #9038] INFO -- : Send `kill -USR1 9038` for detailed status :)
I, [2018-12-10T19:11:47.319000 #9038] INFO -- : Send `kill -USR1 9038` for detailed status :)
I, [2018-12-10T19:11:47.319000 #9038] INFO -- : Send `kill -USR1 9038` for detailed status :)
I, [2018-12-10T19:11:47.319000 #9038] INFO -- : Send `kill -USR1 9038` for detailed status :)
D, [2018-12-10T19:16:15.143000 #9038] DEBUG -- #<Falcon::Server:0xd32>: Incoming connnection from #<Addrinfo: 127.0.0.1:58582 TCP> to #<Async::HTTP::Protocol::HTTP1::Server:0xd30>
I, [2018-12-10T19:16:15.539000 #9038] INFO -- localhost:9292: GET / HTTP/1.1 {"user-agent"=>"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:60.0) Gecko/20100101 Firefox/60.0", "accept"=>["text/html", "application/xhtml+xml", "application/xml;q=0.9", "*/*;q=0.8"], "accept-language"=>["en-US", "en;q=0.5"], "accept-encoding"=>["gzip", "deflate"], "dnt"=>["1"], "connection"=>["keep-alive"], "cookie"=>[], "upgrade-insecure-requests"=>["1"]} from #<Addrinfo: 127.0.0.1:58582 TCP>
I, [2018-12-10T19:16:16.144000 #9038] INFO -- localhost:9292: 3398] GET / HTTP/1.1 -> 200 {"content-type"=>"text/plain", "server"=>["falcon/0.19.6"], "date"=>["Mon", "10 Dec 2018 18:16:15 GMT"], "content-encoding"=>["gzip"]}; #<Falcon::Adapters::Output length=nil body=Array> | #<Async::HTTP::Body::Deflate 2700.0%> | #<Async::HTTP::Body::Statistics sent 27 bytes; took 560.55ms in total; took 482.95ms until first chunk>
I, [2018-12-10T19:16:16.628000 #9038] INFO -- localhost:9292: GET /favicon.ico HTTP/1.1 {"user-agent"=>"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:60.0) Gecko/20100101 Firefox/60.0", "accept"=>["text/html", "application/xhtml+xml", "application/xml;q=0.9", "*/*;q=0.8"], "accept-language"=>["en-US", "en;q=0.5"], "accept-encoding"=>["gzip", "deflate"], "dnt"=>["1"], "connection"=>["keep-alive"], "cookie"=>[]} from #<Addrinfo: 127.0.0.1:58582 TCP>
I, [2018-12-10T19:16:16.721000 #9038] INFO -- localhost:9292: 3428] GET /favicon.ico HTTP/1.1 -> 200 {"content-type"=>"text/plain", "server"=>["falcon/0.19.6"], "date"=>["Mon", "10 Dec 2018 18:16:16 GMT"], "content-encoding"=>["gzip"]}; #<Falcon::Adapters::Output length=nil body=Array> | #<Async::HTTP::Body::Deflate 2700.0%> | #<Async::HTTP::Body::Statistics sent 27 bytes; took 68.96ms in total; took 48.32ms until first chunk>
Thanks for everyone's effort on this.
Will this be in the next RC? when is that due for release?
Releases are around the start of each month, every month. Commits from up to a few days before are usually available.
With fac6b63a93f6c43e1fd1ee73a28c7d7c195b1803, the example hello world app now works with OpenSSL enabled (default):
$ NIO4R_PURE=true jt ruby -S falcon --verbose serve --threaded
There are still a couple further steps, like using NIO4R_PURE automatically with TruffleRuby, and maybe setting threaded as default on TruffleRuby, but the original report should work now, so I closed this issue.
@ioquatix What do you think about these 2 changes?
NIO4R_PURE is slow so it shouldn't be the default.
It should use the native code path where possible.
Threaded can be default but it should be auto detected some how. i.e. you should expose that fork doesn't work. Not sure what the best way is. Perhaps just don't define the function?
@ioquatix
NIO4R_PUREis slow so it shouldn't be the default.
Why is it slow? Because it uses IO.select instead of poll?
If it's just that, maybe it's naive but it sounds like we could internally implement IO.select with poll/epoll/kqueue. I don't know much about those though.
Process.respond_to? :fork is the correct check for this, it's also used in Puma: https://github.com/puma/puma/pull/1630
Why is it slow? Because it uses IO.select instead of poll?
Yes. It's okay for a handful of connections but doesn't scale up very well.
Yes. It's okay for a handful of connections but doesn't scale up very well.
select(2) wouldn't, but maybe the Ruby IO.select could use epoll/kqueue.
What would be the problem then? The cost of re-doing the epoll/kqueue setup on each IO.select call maybe?
select is almost always internally implemented in the OS in terms of epoll/kqueue. Yes, it's slow because the O(N) performance bound for N connections. If N is small, it's okay.