rbpac___ has quit [Remote host closed the connection]
rbpac___ has joined #jruby
rbpac___ has quit [Client Quit]
cristianrasch has quit [Ping timeout: 250 seconds]
nirvdrum has quit [Ping timeout: 240 seconds]
colinsurprenant has joined #jruby
colinsurprenant has quit [Client Quit]
dinfuehr has joined #jruby
havenwood has quit [Ping timeout: 265 seconds]
tcrawley-away is now known as tcrawley
codefinger has quit [Read error: Connection reset by peer]
jeregrine has quit [Ping timeout: 250 seconds]
jeregrine has joined #jruby
codefinger has joined #jruby
dinfuehr has quit [Ping timeout: 250 seconds]
pietr0 has quit [Ping timeout: 240 seconds]
camlow32_ has joined #jruby
camlow325 has quit [Ping timeout: 260 seconds]
mdedetrich has joined #jruby
camlow32_ has quit [Ping timeout: 250 seconds]
colinsurprenant has joined #jruby
subbu has quit [Ping timeout: 252 seconds]
tcrawley is now known as tcrawley-away
grs has quit [Ping timeout: 264 seconds]
grs has joined #jruby
yfeldblu_ has quit [Remote host closed the connection]
yfeldblum has joined #jruby
b_hoffman has joined #jruby
<b_hoffman>
I’m wondering if I should report the following as a bug: in MRI, trying to call ‘open’ on UDPSocket raises an ENETUNREACH error if there’s no network. On Jruby it raises a SocketError
<b_hoffman>
This causes selenium webdriver to hang on a machine that’s offline
cristianrasch has joined #jruby
cristianrasch has quit [Remote host closed the connection]
dinfuehr has joined #jruby
dinfuehr has quit [Ping timeout: 240 seconds]
_djbkd has quit [Quit: My people need me...]
b_hoffman has quit [Ping timeout: 240 seconds]
b_hoffman has joined #jruby
lopex has quit [Quit: Connection closed for inactivity]
dinfuehr has joined #jruby
dinfuehr has quit [Ping timeout: 256 seconds]
<GitHub165>
[jruby] quoideneuf opened issue #3282: UDPSocket Error inconsistent with MRI http://git.io/vsySt
colinsurprenant has quit [Quit: colinsurprenant]
yfeldblum has quit [Ping timeout: 244 seconds]
dinfuehr has joined #jruby
mdedetrich has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
dinfuehr has quit [Remote host closed the connection]
jensnockert has quit [Remote host closed the connection]
mkristian has quit [Quit: This computer has gone to sleep]
sdogruyol has quit [Remote host closed the connection]
mkristian has joined #jruby
<GitHub53>
[jruby] kares pushed 2 new commits to jruby-1_7: http://git.io/vs9CJ
<GitHub53>
jruby/jruby-1_7 f5c974a kares: test skip 1.8.7 test-unit compatibility
<GitHub53>
jruby/jruby-1_7 953a44f kares: some more --1.8 skip fixes (4 less future surprises)
jensnockert has joined #jruby
<jensnockert>
I'm having an issue with child processes in JRuby (9.0.0.0), it doesn't seem to receive SIGCHLD? If I kill the child processes, they just stay as zombies (OS X).
<jensnockert>
The spawn seems okay though, the kernel tries to send the signal to the process.
<jensnockert>
I'm going to try and see if the jvm is running pthread_sigmask or something.
<nirvdrum>
headius: Still looking. But if I can't work it out, I'll just tag the specs.
<headius>
the JVM does set up a signal-handling thread, but the traps we register should be running in that thread
<headius>
nirvdrum: ok
<nirvdrum>
It's something about the env on Travis. Having a debug instance would help.
<headius>
I'm looking through our posix_spawn logic (PopenExecutor
<headius>
nirvdrum: asarih can get you one (email support@travis)
<bbrowning>
nirvdrum: also, sometimes I've found running an Ubuntu VM with only 1-2 CPU threads and limited memory can help
<bbrowning>
although I'm usually chasing down what end up being race conditions or memory issues because of WeakReferences being GC'd or etc
<nirvdrum>
bbrowning: That's a good reminder. Although in this case I'm fairly certain it's ENV-related.
<headius>
hmm ok, I guess I'm not meddling with signals in my posix_spawn call anymore
<headius>
so they should be whatever parent process has
<nirvdrum>
The Time classes take diverging behavior depending on the setting of $TZ.
<bbrowning>
huh
shellac_ has quit [Read error: Connection reset by peer]
donV has joined #jruby
<headius>
bbiab
havenwood has joined #jruby
pitr-ch has quit [Ping timeout: 252 seconds]
pietr0 has joined #jruby
pitr-ch has joined #jruby
<rtyler>
headius: re log4j this is interesting then, according to some dependency locking plugin for Gradle, all I've changed is from 1.7.20.1 to 1.7.22 and now these tests fail
* rtyler
boggles
<jensnockert>
I'm not good enough at Java or Dtrace for this :C
<headius>
heheh
<headius>
well you're better than I am!
dinfuehr has joined #jruby
<jensnockert>
Hopefully not at Java <3
<headius>
I do see that the posix_spawn gem for MRI twiddles signals
<headius>
I'm not doing that, but I could try...unfortunately mask is sigset_t so I'll have to just allocate something *probably* big enough and hope for the best
<rtyler>
anyways, I'm going to dig into this later, gotta deal with some other crap first
* rtyler
promises to return and harass people later
<jensnockert>
Wouldn't that change the signal mask of the child though?
benlovell has quit [Ping timeout: 250 seconds]
<headius>
well it should set it to default for everything, yeah?
<headius>
oh but yeah
<headius>
it shouldn't change how the child signals the parent
<headius>
hmm
subbu is now known as subbu|late_break
sdogruyol has joined #jruby
<jensnockert>
I wonder if it is a java thing, maybe it doesn't have anything to do with the code in jruby?
<headius>
it's certainly possible
<headius>
JVM process subsystem does this on boot:
<jensnockert>
On the other hand, in 1.7.19 I get the sigchld, so that seems unlikely.
<headius>
hmm yeah
<headius>
JVM process launching uses for + exec explicitly, and 9k process launching uses posix_spawn
<headius>
for=fork
<headius>
hmm
<jensnockert>
Shouldn't make any difference.
<headius>
can you trace to see if that handler is getting installed?
<jensnockert>
Yeah, but since you send the sigset, you just get a pointer.
benlovell has joined #jruby
<jensnockert>
I could maybe trace sigaddset too…
<headius>
hmm
<headius>
HAH
<headius>
add this line to top of script: java.lang.UNIXProcess
<headius>
it works
<headius>
so I know the issue now
<headius>
you install trap, then proceed into spawning logic; spawning logic references java.lang.Process for a few things, causing UNIXProcess to init and overwrite your trap
<headius>
referenceing it early reverses that order
mkristian_ has joined #jruby
<jensnockert>
Awesome!
<headius>
obviously there's no way for us to agree with JVM on how to handle that signal, but for what you're doing forcing it to init early and taking it over again should be fine (since you're not using JVM process logic when you're doing this in Ruby
<jensnockert>
I'll do that as a workaround at least.
<headius>
we should probably force java.lang.Process et al to init before we set up Signal
<jensnockert>
I'll add that to the bug report.
<headius>
yeah thank you
<GitHub184>
[jruby] nirvdrum pushed 3 new commits to master: http://git.io/vsQhm
<GitHub184>
jruby/master 66dd42b Kevin Menard: [Truffle] Untagged some passing socket specs.
<GitHub184>
jruby/master c1f9d00 Kevin Menard: [Truffle] Handle more Socket.getnameinfo cases.
<GitHub184>
jruby/master a558250 Kevin Menard: [Truffle] Untag more passing socket specs.
<headius>
and yeah, I looked up sigaction and DFL behavior for CHLD is "discard"
<headius>
so that was my clue
<jensnockert>
Now it works the same in MRI and Jruby \o/
<headius>
nice!
<headius>
I'm trying to trigger UNIXProcess to load in the boot logic for Signal
<headius>
that should guarantee any subsequent traps overwrite the JVM one
<jensnockert>
Just one more thing, if I need to check if I am running Jruby 9.0.0.0 or more? What would be the simplest way?
<headius>
JRUBY_VERSION
<headius>
if you need to guard that, RUBY_ENGINE == 'jruby' && JRUBY_VERSION > '9.0.0.0'
<headius>
there's also RUBY_ENGINE_VERSION but I don't think it's supported on anything but MRI 2.2
<headius>
(and JRuby 1.7 + 9k)
<headius>
jensnockert: you are on linux?
<jensnockert>
OS X, but it needs to work on Linux too.
<headius>
with this sigchld trap I seem to get a bunch of noise on OS X
<headius>
at least when I force early UNIXProcess init
subbu|late_break is now known as subbu
<headius>
Aug 25 11:25:16 headius-macbook kernel[0]: Google Chrome He (map: 0xffffff8060e4bd20) triggered DYLD shared region unnest for map: 0xffffff8060e4bd20, region 0x7fff8c800000->0x7fff8ca00000. While not abnormal for debuggers, this increases system memory footprint until the target exits.
<headius>
noise like that
<headius>
about 6-12 of those message but the script works fine
mkristian_ has quit [Quit: This computer has gone to sleep]
<jensnockert>
Odd.
<headius>
indeed!
<headius>
more research needed
mkristian_ has joined #jruby
<headius>
they're like syslog messages...wtf
<headius>
oh jesus.
<headius>
that's what your script does
<headius>
I just don't see them every time because sometimes it terms before anything prints
<headius>
NEVERMIND
<headius>
yeah, have a fix.
<jensnockert>
Oh, right.
<jensnockert>
Sorry, should have guessed that.
<headius>
no worries
<jensnockert>
You have a fix, and I have a workaround, epic win! Super-thanks!
<headius>
yeah, thanks for bringing it to our attention...I think this came up once before but the reporter just gave up
<headius>
and such a simple fix
* jensnockert
hugs > Now I need to go home from work, have a good day.
jensnockert has quit [Remote host closed the connection]
jensnockert has joined #jruby
jensnockert has quit [Remote host closed the connection]
<headius>
enebo: how do I get this thing to emit refined call sites?
<slash_nick>
headius: have you tried the truffle shuffle?
<headius>
awwww c'mon
<enebo>
headius: let me look. I am not positive we made one
<headius>
you did
<headius>
RefinedCachingCallSite
<headius>
I'm trying a quick flip to move the refinements into scope and out of self module
<headius>
that would at least be closer in spirit even if there's more "refinement" needed
<enebo>
hahah ok I should not be looking on 1.7
<headius>
indeed!
<headius>
it looks like parser marks up the static scope I think?
<enebo>
headius: while I am waiting for it to index in intellij
<headius>
er no... IRScope?
<enebo>
headius: we add flag to IRScope as canPotentiallyBeRefined ot something like that
<headius>
yeah, just trying to confirm those are getting there
<enebo>
headius: then I think in Call* (base?) .create we pass the scope down
<headius>
you have recursive search of cref for refinements
<headius>
I think all I need to do is move the place it stores "using" refinements to the static scope
<enebo>
headius: the bowels of create should ask scope if it is potentially refined
<headius>
ok, I see that
<headius>
going to breakpoint because it doesn't seem to pick it up
anaeem1 has quit [Quit: Leaving...]
<headius>
ah-ha...starting to work
<enebo>
ah hey my memory works sometimes!
cremes has quit [Read error: No route to host]
<enebo>
Sometimes I think I dream write code :)
<enebo>
Or I nuke thing too often
<headius>
hmm
<enebo>
headius: I agree…static scope has to be correct place
cremes has joined #jruby
<headius>
the change wasn't too hard so far, but it's also not working so...
<enebo>
headius: since it is the only place which is lexically alive in the runtime
<headius>
yeah
<headius>
I just added getOverlayModule to StaticScope and flipped using/call logic to look there
<enebo>
headius: I also think you can replace existing cref with the one which is made up with the magical refined hierarchy mixed in
<headius>
command line JVM debug flag is the bomb
<headius>
debugging -e is sweet
<headius>
enebo: hmm maybe
<headius>
I think they're kept separate in MRI's cref
<headius>
I'm mostly just trying to get them isolated as a first pass
<enebo>
headius: I think this because no staticscope can refer to anything but a single lexical piece of code
<headius>
ahh true
<headius>
oh oops
<headius>
top-level using is separate
benlovell has joined #jruby
<headius>
ok, if this even sorta works I'll be happy
<headius>
I can at least start rigging up JIT a little
<enebo>
headius: so in my mind I feel like replacing cref with magical refine-pimped version could even mean not having a special refined site…but refinements hurt my head
<headius>
$ jruby -X-C -e "module Blah; refine String do; def yummy; 'yummy'; end; end; end; class Foo; using Blah; p 'foo'.yummy; end; class Foo; p 'foo'.yummy; end"
<headius>
"yummy"
<headius>
NoMethodError: undefined method `yummy' for "foo":String
<headius>
hot crackers
bb010g has joined #jruby
<headius>
scoped monkey-patching is ALIVE
<enebo>
headius: we did sort of have that case already working at one ponit
<headius>
I don't think that worked because you wrote it directly into the target class
<enebo>
headius: it was re-entering Blah from a second lexical structure which was broken
<headius>
this is a second lexical structure
<headius>
sorry, my one-liners
<enebo>
oh you did that
<enebo>
:)
<enebo>
ok yeah
<enebo>
that was the big flaw :)
<headius>
so this is much closer to MRI now
<headius>
shit it
<headius>
lol
<headius>
ship it
<enebo>
headius: funny too since we said back whenever that we should just store it on staticscope
<headius>
yeah
<enebo>
headius: we just had to do it :)
mkristian_ has quit [Quit: This computer has gone to sleep]
<headius>
I could just make JIT bail if it sees refined scopes too
<headius>
eff the bozos
<enebo>
headius: buit I still wonder if rewiring cref is enough to fix it without special callsite
<headius>
oh, you want to use refinements, eh? well here's your 20x slowdown
<enebo>
headius: but I think we cannot cache cref if we do that
<enebo>
yeah actually I think special site makes sense to do extra did cref change
<headius>
stupid dentist office bugs me almost quarterly
<enebo>
headius: this also is useful for the include Foo.dup bug too
<headius>
well that's a whole other mess
<headius>
this avoids the dup losing refinements though
<enebo>
yeah actually it won’t help
<headius>
since it's still the same scope
<enebo>
we do not want to check cref every call
<headius>
or at least the scope can copy the overlay module directly
<headius>
no, we don't...but we have to right now
<headius>
AND all parent cref
<enebo>
headius: but only for refinements
<headius>
just for those marked as refined
<headius>
yeah
<headius>
so suck it
<headius>
it's a goofy feature
<enebo>
headius: I am thinking about include mod.dup
<headius>
ahh yeah
<headius>
that we need to do the IRScope cloning
<headius>
or at least copy the cref scope into a new InterpretedIRMethod
<headius>
I still think that would be enough
<enebo>
well it is not like we don’t have infrastructure for specialized cloning modes in IR
<headius>
sure
<enebo>
we do for ensure cloning and inlining cloning already
<enebo>
just perhaps mildly undesirable extra check
<headius>
yeah
<enebo>
but who cares
<headius>
yeah that feels weird to me too so I will probably change it to null check on caller
<enebo>
I don’t…Not until the planet decides refinments matter anyways
<headius>
so that the cref search can just skip the scope quickly
<headius>
or actually, perhaps this should be StaticScope.findRefinementFor(mod)
<headius>
and it can recurse
<headius>
or bail
<headius>
OO dood
<enebo>
headius: my other big fear with refinements works is I am unsure if I refactored the hierarchy logic code 100% or not. I think so but I guess we will find out
<headius>
I'll run their tests for this and see how it looks
<enebo>
headius: if those super tests work in test_refinement now then perhaps so
<headius>
at least it's not leaking
<enebo>
headius: I like the changes I made since I found one particular method IMPOSSIBLE to read
<enebo>
headius: RubyModule.getAlreadyActivatedRefinementWrapper is different than MRI source but I think a little bit more understandable
<enebo>
anyways if there are failing tests I would review that sooner than later
<headius>
enebo: run this for me quick: jruby -X-C test/mri/runner.rb test/mri/ruby/test_refinement.rb
<headius>
I guess this never got into MRI test run...adding it now
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
jensnockert has joined #jruby
skade has quit [Quit: Computer has gone to sleep.]
jensnockert has quit [Ping timeout: 252 seconds]
<rtyler>
kares: ping
<rtyler>
kares: do you have some good arguments on why ar-jdbc would be better than ar + mysql2?
<donV>
You can use ARJDBC with JRuby and concurrency?
<donV>
anybody know how to update the maven version that is included with RVM?
<donV>
Mine is 3.1.1, and we need 3.3.3 to build jruby-head
dinfuehr has joined #jruby
enebo has quit [Quit: enebo]
<rtyler>
donV: that's an easy answer to everything :P
<rtyler>
and unfortunately it's not as compelling if you don't have problems that you can prove benefit from /actual/ parallelism
dinfuehr has quit [Ping timeout: 245 seconds]
<rtyler>
donV: I'm trying to make sure I build as much of a case for JRuby excluding the parallelism argument, because without data to back up the benefit for an app, it's a hollow argument IMHO
<donV>
rtyler: I feel setup with arjdbc is much simpler. no gcc and tooling required.
<cpuguy83>
My resp times in rails are 1/3 just switching to jruby.
<rtyler>
cpuguy83: because your load is heavily....cpu-bound? *rimshot*
<rtyler>
donV: that's a good point
* rtyler
writes it down
<donV>
rtyler: the embedded solutions are better with arjdbc as well: derbydb, h2, hsqldb very databases compared to sqlite3
<donV>
very _good_ databases :)
cristianrasch has quit [Ping timeout: 246 seconds]
samphippen has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
oblutak has left #jruby [#jruby]
mje113 has quit [Quit: Connection closed for inactivity]
subbu is now known as subbu|afk
Aethenelle has joined #jruby
yfeldblum has quit [Ping timeout: 244 seconds]
dinfuehr has joined #jruby
dinfuehr has quit [Ping timeout: 265 seconds]
erikhatcher has joined #jruby
erikhatcher has quit [Client Quit]
erikhatcher has joined #jruby
Aethenelle has quit [Read error: Connection reset by peer]