00:00
ITXpander has quit [Client Quit]
00:54
camlow32_ has quit [Remote host closed the connection]
00:59
pawnbox has joined #jruby
01:04
pawnbox has quit [Ping timeout: 244 seconds]
01:18
TheWhip has joined #jruby
01:23
TheWhip has quit [Ping timeout: 260 seconds]
01:52
johnsonch is now known as johnsonch_afk
02:04
<
GitHub159 >
[jruby] ranjithdharmaraj opened issue #4050: SMTP IOError: Network is unreachable on windows
https://git.io/v6mEE
02:05
djellemah has quit [Ping timeout: 240 seconds]
02:15
e_dub has quit [Quit: ZZZzzz…]
02:34
e_dub has joined #jruby
02:39
e_dub has quit [Read error: Connection reset by peer]
02:40
e_dub has joined #jruby
03:36
pawnbox has joined #jruby
03:44
TheWhip has joined #jruby
03:49
pawnbox has quit [Remote host closed the connection]
03:50
pawnbox has joined #jruby
03:50
yfeldblum has quit [Remote host closed the connection]
03:51
TheWhip has quit [Remote host closed the connection]
04:06
e_dub has quit [Quit: ZZZzzz…]
04:14
pawnbox has quit [Ping timeout: 276 seconds]
04:15
pawnbox has joined #jruby
04:16
djellemah has joined #jruby
04:18
<
GitHub56 >
jruby/master 064d29c Brandon Fish: [Truffle] Implement File.mkfifo
04:21
camlow325 has joined #jruby
04:34
TheWhip has joined #jruby
04:34
<
GitHub75 >
jruby/master 67965d5 Brandon Fish: [Truffle] File.mkfifo fix/style
04:35
<
GitHub58 >
jruby/master aeeabf8 Brandon Fish: [Truffle] Untag passing File errno specs
04:36
yfeldblum has joined #jruby
04:37
pawnbox has quit [Remote host closed the connection]
04:49
pawnbox has joined #jruby
05:02
<
GitHub54 >
jruby/master 86cb695 Brandon Fish: [Truffle] Kernel#` to coerce command using #to_str
05:33
thedarkone2 has quit [Quit: thedarkone2]
06:06
raeoks has joined #jruby
06:15
yfeldblum has quit [Ping timeout: 250 seconds]
06:19
jimbaker has quit [Ping timeout: 250 seconds]
06:22
jimbaker has joined #jruby
06:23
jimbaker has quit [Changing host]
06:23
jimbaker has joined #jruby
06:51
yfeldblum has joined #jruby
06:56
TheWhip_ has joined #jruby
06:56
raeoks has joined #jruby
06:58
pil-afk is now known as pilhuhn
06:58
TheWhip has quit [Ping timeout: 252 seconds]
06:58
pawnbox has quit [Ping timeout: 276 seconds]
06:59
pawnbox has joined #jruby
07:03
camlow325 has quit [Remote host closed the connection]
07:06
pawnbox has quit [Remote host closed the connection]
07:06
pawnbox has joined #jruby
07:12
rsim has joined #jruby
07:15
rsim has quit [Client Quit]
07:16
jimbaker has quit [Ping timeout: 258 seconds]
07:18
ITXpander has joined #jruby
07:19
jimbaker has joined #jruby
07:20
jimbaker has quit [Changing host]
07:20
jimbaker has joined #jruby
07:20
ITXpander has quit [Client Quit]
07:26
claudiuinberlin has joined #jruby
07:32
pawnbox has quit [Remote host closed the connection]
07:33
pawnbox has joined #jruby
07:34
pawnbox has quit [Remote host closed the connection]
07:34
pawnbox has joined #jruby
07:37
<
GitHub99 >
jruby/master 58a5a81 kares: Enumerator is top level constant these days + final-ize ALLOCATOR
07:39
pawnbox has quit [Read error: Connection reset by peer]
07:45
pawnbox has joined #jruby
07:45
skade has joined #jruby
07:48
pawnbox has quit [Read error: Connection reset by peer]
07:50
skade has quit [Ping timeout: 252 seconds]
08:09
yfeldblum has quit [Ping timeout: 250 seconds]
08:09
TheWhip_ has quit [Remote host closed the connection]
08:15
pawnbox has joined #jruby
08:19
TheWhip has joined #jruby
08:25
TheWhip has quit [Ping timeout: 258 seconds]
08:32
TheWhip has joined #jruby
08:35
pawnbox has quit [Remote host closed the connection]
08:35
pawnbox has joined #jruby
08:39
<
GitHub133 >
jruby/master 7ba8959 Benoit Daloze: [Truffle] JT: Make sure bin/ruby points to the right launcher.
08:39
<
GitHub133 >
jruby/master e5cf5a8 Benoit Daloze: [Truffle] JT: Run the metrics using the capture mechanism so errors are properly printed.
08:39
<
GitHub133 >
jruby/master bb8f30b Benoit Daloze: [Truffle] jruby_mx: support -J and classpath.
08:47
skade has joined #jruby
08:47
pawnbox has quit [Ping timeout: 250 seconds]
08:54
skade has quit [Ping timeout: 244 seconds]
08:54
<
GitHub45 >
jruby/truffle-head 9be0bad Benoit Daloze: Merge remote-tracking branch 'origin/master' into truffle-head
08:54
pawnbox has joined #jruby
09:41
vtunka has joined #jruby
09:51
skade has joined #jruby
09:53
pawnbox has quit [Remote host closed the connection]
09:54
pawnbox has joined #jruby
09:56
skade has quit [Ping timeout: 276 seconds]
10:14
<
GitHub15 >
jruby/master 5585439 Benoit Daloze: [Truffle] JT: Times metrics are printed on stderr and memory metrics on both streams.
10:21
e_dub has joined #jruby
10:52
TheWhip has quit [Remote host closed the connection]
10:54
ale_ has quit [Ping timeout: 264 seconds]
10:54
ale has joined #jruby
10:58
vtunka has quit [Quit: Leaving]
11:00
pawnbox has quit [Remote host closed the connection]
11:01
pawnbox has joined #jruby
11:04
TheWhip has joined #jruby
11:08
vtunka has joined #jruby
11:08
vtunka_ has joined #jruby
11:13
vtunka_ has quit [Client Quit]
11:14
<
GitHub84 >
jruby/truffle-head 2bfe445 Benoit Daloze: Merge remote-tracking branch 'origin/master' into truffle-head
11:15
pawnbox has quit [Remote host closed the connection]
11:18
pawnbox has joined #jruby
11:21
skade has joined #jruby
11:25
bbrowning has joined #jruby
11:35
skade has quit [Read error: Connection reset by peer]
11:35
skade has joined #jruby
11:40
tcrawley-away is now known as tcrawley
13:06
ITXpander has joined #jruby
13:13
TheWhip has quit [Remote host closed the connection]
13:20
<
kegster >
Can I just have 'begin' then code, then 'rescue' then code to run if it fails? without having 'rescue foo=>bar' ?
13:27
pawnbox has quit [Remote host closed the connection]
13:28
pawnbox has joined #jruby
13:33
pawnbox has quit [Ping timeout: 252 seconds]
13:35
<
yopp >
I'm having real trouble with SecureRandom on 9.1.2.0. SecureRandom.hex(16) takes like 160 seconds
13:36
<
yopp >
I'm out of entropy?
13:49
Tristitia has quit [Remote host closed the connection]
13:49
pawnbox has joined #jruby
13:49
zacts has joined #jruby
13:51
Tristit1a has joined #jruby
13:53
pawnbox has quit [Ping timeout: 250 seconds]
13:57
<
yopp >
holy fuck. that's why our CI took like 20 min
14:02
tcrawley is now known as tcrawley-away
14:06
tcrawley-away is now known as tcrawley
14:07
Tristit1a is now known as Tristitia
14:14
bbrowning is now known as bbrowning_away
14:28
<
GitHub37 >
jruby/master decc1a3 Brandon Fish: [Truffle] Update File.mkfifo arg handling
14:42
zacts has quit [Quit: WeeChat 1.4]
14:44
zacts has joined #jruby
14:47
<
GitHub31 >
jruby/master 1890c06 Benoit Daloze: [Truffle] Fix error message in CheckArityNode when there are optional arguments.
14:47
<
GitHub31 >
jruby/master a44b822 Benoit Daloze: [Truffle] Keep it simple and idiomatic in File#mkfifo.
14:50
vtunka has quit [Quit: Leaving]
14:55
thedarkone2 has joined #jruby
14:57
camlow325 has joined #jruby
15:01
<
GitHub78 >
jruby/master 3d7d59e Benoit Daloze: [Truffle] Trying to untag a few spawn specs.
15:25
ITXpander has quit [Quit: Leaving.]
15:33
<
GitHub72 >
jruby/master 4a06018 Benoit Daloze: [Truffle] Implement full Process.kill.
15:44
pilhuhn is now known as pil-afk
15:52
cprice404 has quit [Quit: Konversation terminated!]
15:53
zacts has quit [Quit: WeeChat 1.4]
16:11
jimbaker has quit [Ping timeout: 276 seconds]
16:15
jimbaker has joined #jruby
16:15
jimbaker has quit [Changing host]
16:15
jimbaker has joined #jruby
16:31
mberg has quit [Ping timeout: 250 seconds]
16:36
thedarkone2 has quit [Quit: thedarkone2]
16:37
skade has quit [Quit: Computer has gone to sleep.]
16:37
zacts has joined #jruby
16:52
bbrowning_away is now known as bbrowning
16:55
claudiuinberlin has quit []
16:56
cprice404 has joined #jruby
17:01
<
GitHub196 >
jruby/master 301c6fe Benoit Daloze: [Truffle] posix_spawnp(3) returns an int not a long.
17:01
<
GitHub196 >
jruby/master d76fa47 Benoit Daloze: Use a fixture rather than inline code which needs lots of escape characters
17:01
<
GitHub196 >
jruby/master f415ec0 Benoit Daloze: [Truffle] Fix a few bugs and missing methods around #spawn.
17:03
mberg_ has joined #jruby
17:03
enebo has joined #jruby
17:03
mberg_ is now known as mberg
17:18
Tristitia has quit [Ping timeout: 260 seconds]
17:27
Tristitia has joined #jruby
17:28
<
GitHub58 >
jruby/master d1b6d5e Chris Seaton: [Truffle] Update LabsJDK.
17:31
<
GitHub160 >
jruby/truffle-head 13c55e2 Chris Seaton: Merge branch 'master' into truffle-head
17:31
<
GitHub160 >
jruby/truffle-head 01540ce Chris Seaton: [Truffle] Update LabsJDK.
17:38
thedarkone2 has joined #jruby
17:39
skade has joined #jruby
17:44
Tristitia has quit [Ping timeout: 244 seconds]
17:52
Tristitia has joined #jruby
18:01
claudiuinberlin has joined #jruby
18:03
subbu is now known as subbu|lunch
18:04
<
bascule >
_____ ____ ___ ____ _ __ ___ _ _
18:04
<
bascule >
| ___| _ \|_ _| _ \ / \\ \ / / | | |
18:04
<
bascule >
| |_ | |_) || || | | |/ _ \\ V /| | | |
18:04
<
bascule >
| _| | _ < | || |_| / ___ \| | |_|_|_|
18:04
<
bascule >
|_| |_| \_\___|____/_/ \_\_| (_|_|_)
18:13
zacts has quit [Ping timeout: 244 seconds]
18:44
subbu|lunch is now known as subbu
18:46
tcrawley is now known as tcrawley-away
18:53
<
headius >
yopp: I wonder how many people this is affecting
18:53
<
headius >
it may be the reason for stupid 30 minute app startup times we've heard about
18:53
<
headius >
enebo: fix it
18:53
* headius
has spoken
18:54
<
enebo >
hahaah fix what?
18:54
<
yopp >
I think it's worth to try to add at least some kind of timeout
18:54
<
headius >
enebo: the way we're doing SecureRandom seems to still be really sensitive to burning out entropy
18:54
<
enebo >
oh still entropy exhaustian
18:54
<
enebo >
heh spelling genius
18:54
<
headius >
this probably never affects us because we don't dev on linux
18:55
<
enebo >
it uses same underlying source as MRI?
18:55
<
headius >
we have our own
18:56
<
headius >
we had a thread a year back or so trying to figure out how to have faster SecureRandom without compromising security
18:56
<
enebo >
I do remember tony and a few others discussing this a couple of years ago
18:56
<
headius >
I guess we didn't go far enough
18:56
<
headius >
there's a couple active bugs in tracker related to this
18:56
<
headius >
realjenius voted for us to revisit it and others said they're still seeing problems
18:56
<
headius >
installing an entropy-maker works but nobody knows to do that
18:56
<
enebo >
so MRI is not so random and ours is better but we burn out entropy too quickly and slow to a crawl
18:57
<
headius >
I think so
18:57
<
yopp >
Our entropy graph is pretty jigsaw-ish
18:57
<
headius >
I remember looking into what MRI does and being a bit confused...I think they might use OpenSSL's PRNG but it also looked like that has a fallback
18:57
<
headius >
yopp: you can see that?
18:58
<
headius >
what tool is that?
18:58
<
yopp >
prometheus + node_exporter + grafana
18:58
<
headius >
yeah we're eating the heck out of it
18:58
<
enebo >
STOP THE WORLD WE NEED MORE ENTROPY
18:58
<
yopp >
I'm not sure it's jruby
18:58
<
headius >
yopp: well I'm sure we're not helping
18:58
<
yopp >
that's for sure :)
18:58
<
enebo >
can OSes make a larger pool
18:58
<
headius >
ugh...I have to dig all these details out of the dusty closet of my mind
18:58
jimbaker has quit [Ping timeout: 265 seconds]
18:59
<
yopp >
enebo, we fixed that by simply starting havenged docker image on all hosts
18:59
<
enebo >
I do not think it is nice to fully punt but I am wondering if a pool reaches a vcertain size if the pool stops being a sawtooth
18:59
<
yopp >
and now our CI is like 3x faster
18:59
<
yopp >
In our case it reached zero
18:59
<
yopp >
now havenged provides more entropy is it goes below 1k
19:00
<
enebo >
yeah but does entropy typically just run until it is gone and rebuild some…there is none trickling in somehow?
19:00
<
headius >
yeah I don't know
19:00
<
enebo >
I feel like I am just leeching knowledge here but this is one topic I have never read up on
19:00
<
yopp >
it rebuilds very slowly. and since /dev/random is blocking until it can get requested bits
19:01
<
enebo >
WTF tarcieri where are you? :)
19:01
<
enebo >
sure he is here to be fancy on friday's
19:01
<
yopp >
so in our case SecureRandom.hex(16) in sprockets blocked app for 3 minutes
19:02
<
enebo >
cheald I think had some solution to this prioblem with an external thing
19:02
jimbaker has joined #jruby
19:02
<
headius >
I wonder if it's failing to use the SHA1PRNG
19:02
<
headius >
yopp: what JDK version?
19:02
<
enebo >
I just saw him mention something about that but I not know what it is
19:02
jimbaker has quit [Changing host]
19:02
jimbaker has joined #jruby
19:02
<
headius >
so I try to force the SHA1PRNG because it just grabs entropy at boot and is pseudo-random from there on
19:02
<
headius >
secureRandom = SecureRandom.getInstance("SHA1PRNG");
19:03
<
headius >
enebo: yeah he used an entropy-maker too
19:03
<
headius >
that seems to work around it well
19:03
<
headius >
but it's not a solution
19:03
<
yopp >
java version "1.8.0_92"
19:03
<
yopp >
Java(TM) SE Runtime Environment (build 1.8.0_92-b14)
19:03
<
yopp >
orchestraged by rancher
19:03
<
yopp >
and the whole thing is running on openstack :D
19:04
<
headius >
yopp: can you try to run this in JRuby please: java.security.SecureRandom.getInstance("SHA1PRNG")
19:04
<
yopp >
=> #<Java::JavaSecurity::SecureRandom:0x703580bf>
19:04
<
headius >
hmm, we do this for every ThreadContext...so I suppose spinning a ton of threads or fibers could burn up a lot of entropy
19:04
<
headius >
I just wouldn't expect that to spin fast enough
19:05
<
headius >
we moved to thread-local SecureRandom to avoid contention
19:06
<
headius >
so it did work
19:06
<
yopp >
SHA1 prng doesn't sounds good
19:07
<
headius >
we did a randomness test and it was as good as going to urandom all the time
19:08
<
headius >
but it isn't supposed to eat up entropy
19:08
<
GitHub21 >
jruby/master a24633e Thomas E. Enebo: Remove IPC from Instr. Not really used beyond inlining and our inlining...
19:08
<
GitHub21 >
jruby/master 4175f39 Thomas E. Enebo: Remove RPC from instr. Remove unused interpreter engines (at least for...
19:08
<
GitHub21 >
jruby/master 50882dc Thomas E. Enebo: Merge branch 'master' into mutate
19:09
<
yopp >
headius, I think there should be two sources of randomness
19:10
<
yopp >
but I'm not infosec expert, but I don't like the idea when something is happens behind the scene, that can affect security
19:11
<
enebo >
what the hell
19:11
<
enebo >
it shows a merge conflict locallt
19:11
<
yopp >
but also I'm not sure about using SecureRandom for example, for key generation
19:11
<
enebo >
it was a clean merge before I merged
19:11
<
headius >
jruby -e 'Java::sun.security.jca.Providers.getProviderList.providers.each {|p| p.services.each {|s| puts s.algorithm if s.type == "SecureRandom" } }'
19:11
<
headius >
I get four items for that
19:11
<
enebo >
ah ok somehow I have a .rej file from earlier :)
19:11
<
headius >
NativePRNG, SHA1PRNG, NativePRNGBlocking, NativePRNGNonBlocking
19:12
<
yopp >
headius, same
19:12
<
headius >
those last two presumably are /dev/random and /dev/urandom
19:12
<
headius >
yopp: can you build JRuby?
19:12
<
yopp >
not at the moment :(
19:13
<
headius >
enebo: I'm going to make the PRNG we request a property for the moment, so at least it can be altered without a rebuild
19:13
<
enebo >
headius: makes sense to me
19:13
<
enebo >
headius: as a classname right?
19:13
<
headius >
provider/service name
19:13
<
headius >
so those names above
19:14
<
yopp >
A cryptographically strong random number minimally complies with the statistical random number generator tests specified in FIPS 140-2
19:15
<
yopp >
from the java docs on SecureRandom
19:15
<
yopp >
FIPS sounds serious!
19:18
<
yopp >
For all other hash function applications, the use of SHA-1 is acceptable. The
19:18
<
yopp >
other applications include HMAC, Key Derivation Functions (KDFs), Random Number
19:18
<
yopp >
Generation (RNGs and RBGs), and hash-only applications (e.g., hashing passwords
19:18
<
yopp >
and using SHA-1 to compute a checksum, such as the approved integrity technique
19:18
<
yopp >
specified in Section 4.6.1 of [FIPS 140-2]).
19:19
<
yopp >
but anyways, seems like SHA1PRNG is acceptable solution
19:19
<
yopp >
SHA1 deprecated only for signature generation
19:20
<
headius >
yopp: yeah we used one of those tests
19:21
<
headius >
but it's still slurping down too much entropy
19:21
<
headius >
well, something is
19:21
<
headius >
I guess we don't know it's JRuby
19:21
<
headius >
but we are sensitive to it
19:22
<
yopp >
Seems like JVM in general is sensitive to it
19:22
<
headius >
yopp: I will push this config property to master...if you have a binary can you test it?
19:22
<
headius >
yopp: well yes, that's true, but we pride ourselves on working around JVM oddities too :-)
19:23
<
yopp >
headius, with binary, yes
19:23
<
headius >
ok...hopefully 9.1.3.0 head runs your app ok. I'll push this and kick off a CI dist build
19:24
<
headius >
...after some sanity tests
19:24
<
headius >
if you can reproduce the starvation, or at least see it in that graph, trying the four options from above would be very interesting
19:24
<
headius >
this is just going to get worse as more people move to containers
19:25
<
headius >
maybe there's a kernel config to bump up the entropy pool size?
19:25
<
headius >
"[AFAIR, the random pool is only 512 bytes in size, so it can't contain more
19:25
<
headius >
"entropy" than that]"
19:26
<
yopp >
no idea, but I don't think so, otherwise there will be no havenged
19:27
<
GitHub120 >
jruby/master 1b3111e Charles Oliver Nutter: Allow configuring the preferred PRNG for SecureRandom.
19:27
<
yopp >
because that's pretty much only solution I was able to google
19:28
claudiuinberlin has quit [Remote host closed the connection]
19:28
<
headius >
the property is jruby.preferred.prng or -Xpreferred.prng passed to JRuby
19:29
<
headius >
-Xpreferred.prng=NativePRNGNonBlocking etc
19:29
<
yopp >
Kk, I'll try on Monday, I'm not in the friday-night-deploy-that-will-blow-your-weekend mood :)
19:29
<
headius >
yeah ok...this is HEAD too so don't put your server at risk on our account :-)
19:29
<
headius >
I will update related bugs with this property
19:29
<
enebo >
headius: you use preferred because it might be usable on all platforms?
19:29
<
headius >
yeah, if it can't load preferred it falls back on the default JDK logic to choose a provider
19:29
<
yopp >
I'll try on staging, if some of the hosts on graph will improve entropy then it's working
19:30
<
headius >
yopp: cool, thanks
19:30
<
headius >
update that when you are able to test
19:31
<
yopp >
but afaik rancher is running some of their stuff on the jvm as well, so maybe it's their fault
19:32
<
yopp >
because rancher only one common thing on this hosts, and from the graph I can tell that all of them are leaking the pool
19:32
<
yopp >
one the same rate
19:36
<
headius >
yopp: in that bug bascule points out that he's using NativePRNGNonBlocking which is new in Java 8
19:36
<
headius >
so maybe that's the ticket
19:36
<
headius >
I could certainly change master to prefer that, then try SHA1, then just let JDK decide
19:36
<
enebo >
headius: is that a class name or some other value on Java side?
19:37
<
headius >
well it's a service name out of jca provider stuff
19:37
<
yopp >
from the java docs it seems like NativePRNGNonBlocking is just /dev/urandom
19:37
<
headius >
yopp: makes sense
19:37
<
headius >
urandom is supposed to never block
19:37
<
enebo >
headius: so the provider does not allow class naems probably
19:37
<
headius >
I don't know :-)
19:38
<
headius >
this is SecureRandom.getInstance(name)
19:38
<
headius >
so it's doing some JCA provider lookup of some kind
19:38
<
enebo >
headius: otherwise we could allow people to use custom ones too and we could possible have a gem which uses one of these other packages outside JVM perhaps
19:38
yfeldblum has joined #jruby
19:38
<
headius >
yeah I don't know if you can install a new provider unprivileged
19:38
<
headius >
I guess BC is a provider but I don't know what they have for PRNG
19:38
<
enebo >
headius: hehe…and Java 9
19:42
<
headius >
call sites merged
19:42
<
GitHub9 >
[jruby] headius closed issue #3976: Superclass mixin implementation called instead of subclass implementation
https://git.io/voiQy
19:59
<
headius >
eregon: your last commit is still red in travis...looks like it's hanging
20:00
zacts has joined #jruby
20:00
<
headius >
enebo: I think I'm going to modify this to prefer the nonblocking PRNG, then SHA1, then JDK picks
20:01
<
headius >
zacts: g'day
20:01
<
headius >
did you ever get to using JRuby for anything? I remember you asked about calling libs
20:01
<
enebo >
headius: yeah makes sense from all things said on channel
20:01
<
enebo >
headius: it makes even more sense since we cannot depend on the first two existing
20:03
<
zacts >
headius: not quite yet
20:03
<
zacts >
I'm thinking of trying to utilize it with supercollider and processing
20:04
bbrowning is now known as bbrowning_away
20:04
<
GitHub191 >
jruby/master 061903e Charles Oliver Nutter: Prefer non-blocking PRNG, with failover to SHA1 and then JDK def....
20:04
<
headius >
zacts: ahh there's a ruby-processing wrapper you might want to look at
20:04
<
headius >
I'm not familiar with supercollider
20:05
<
zacts >
yeah supercollider is to music synth what processing is to visuals
20:13
<
headius >
yeah that would be fun to stitch together with JRuby
20:13
TheWhip has joined #jruby
20:16
<
headius >
bbrowning_away: hey you were seeing SecureRandom problems at one point too
20:16
<
headius >
I should probably just spin up a linux VM and see if I can starve it
20:17
<
nirvdrum >
Isn't this still the /dev/random thing?
20:18
<
nirvdrum >
I thought the issue was seeding the PRNG from /dev/random and the latter blocks.
20:18
<
nirvdrum >
We had similar reports with Selenium, FWIW.
20:19
zacts has quit [Quit: WeeChat 1.4]
20:21
<
chrisseaton >
headius: have you explored how JRuby interacts with Jigsaw (or Java 9 in general) yet?
20:23
<
headius >
nirvdrum: yes
20:23
<
headius >
but I did not know that Java 8 added an explicitly nonblocking PRNG
20:23
<
headius >
so we'll try that first now
20:23
<
headius >
chrisseaton: I don't think we boot on 9 yet
20:23
<
headius >
it's on my to-do list
20:24
<
headius >
I need to build jigsaw-head anyway to test out new jlink invokedynamic support
20:24
<
chrisseaton >
yeah suddenly panicked that it's part of our strategy to get people to use Graal via Java 9 EA, but I haven't actually been trying that
20:24
<
chrisseaton >
I found the JVMLS Jigsaw presentation very hard to get my head around
20:25
* yopp
still impressed that CI builds went from 30m to 10m
20:26
<
yopp >
pull requests now 2-4m vs 10-15m
20:26
<
chrisseaton >
headius: Platform.initPlatform seems to be an early point of failure
20:26
<
chrisseaton >
headius: Class.forName("com.sun.security.auth.module.UnixSystem") likely
20:29
<
headius >
chrisseaton: jigsaw is pretty involved
20:29
<
headius >
yopp: that's pretty amazing
20:30
<
headius >
yopp: what is it that's hitting SecureRandom so much?
20:42
<
nirvdrum >
In my experience, UUID has been a common source.
20:44
claudiuinberlin has joined #jruby
20:44
<
nirvdrum >
IIRC, Rails or Rack generates one per request.
20:47
<
headius >
chrisseaton: are you ficking JDK9 stuff right now or just noting what failed?
20:47
<
chrisseaton >
Just tried it for the first time
20:48
<
chrisseaton >
It seems to basically work - just where we use unusual JDK libraries it's not allowing it
20:48
<
chrisseaton >
Is there a big flag to turn off Jigsaw?
20:48
<
chrisseaton >
Or to allow unrestricted access to classes, more like?
20:48
<
headius >
I don't know
20:49
TheWhip has quit [Remote host closed the connection]
20:53
<
headius >
I'm doing a head build of jigsaw and will see what I can do
20:55
<
headius >
chrisseaton: if I wanted to get graal folks playing with JRuby classic, would I run into 9 issues?
20:55
<
headius >
or put another way, is graal dev being done against a JDK8 based or JDK9
20:55
<
chrisseaton >
GraalVM is based on 8
20:56
<
headius >
I want to toss over some instructions for running JRuby + benchmarks and see if we can improve things
20:56
<
headius >
recent improvements seem to be bumping up our perf a lot...so I'd like to do more playing with graal
20:56
<
headius >
graal 0.12 is also dying on a few benchmarks
20:57
<
headius >
JRuby and J+T
20:59
<
headius >
managed to triple the rubykon bench without trying, just incremental improvements
20:59
<
chrisseaton >
Yeah I need to get Rubykon into our CI system
21:00
<
headius >
which CI system is that?
21:01
TheWhip has joined #jruby
21:05
TheWhip has quit [Ping timeout: 250 seconds]
21:09
<
chrisseaton >
We have a sort of Travis like system interally
21:09
<
headius >
ah, so nothing public...that's too bad
21:11
<
headius >
I could not run JT on 0.12 so I don't know how perf has changed
21:11
<
headius >
my 3x was just comparing JRuby classic 9.0.3.0 to master
21:12
<
chrisseaton >
The benchmark results might be at some point
21:12
<
chrisseaton >
Like are-we-fast-yet
21:13
<
chrisseaton >
You should be able to run master on GraalVM 0.12 - we test and benchmark that on every commit
21:16
<
headius >
chrisseaton: it blows up for both JRuby and JT on rubykon
21:17
<
headius >
missing method, really weird
21:17
<
headius >
works fine on hotspot
21:17
<
chrisseaton >
Oh right you mean Rubykon specifically
21:17
<
chrisseaton >
Yeah I should look at it again and bake it into CI so it stays working
21:17
<
headius >
well no, I'm talking in general, but for rubykon specifically that was a problem
21:17
<
chrisseaton >
Especially if you're going to try to improve it further :)
21:17
<
headius >
especially weird that it effected both of us
21:17
<
headius >
oh, we're going to have some great improvements over the next couple months :-)
21:18
<
headius >
I figure if I can get a few more object shape specializations in, and we get our specialization+deopt+inlining story working, we should be looking a lot better
21:23
claudiuinberlin has quit [Remote host closed the connection]
21:24
<
headius >
especially if graal is less annoying about inlining thresholds
21:25
<
chrisseaton >
Are HotSpot's configurable?
21:25
claudiuinberlin has joined #jruby
21:26
<
headius >
but usually it makes something else worse
21:26
<
headius >
I have benchmarks that are 2-3x faster if I tweak InlineSmallCode, for example
21:26
<
headius >
it kinda makes you wonder how much perf we're losing out on because Hotspot is too conservative
21:27
<
headius >
chrisseaton: what's the graal property to print all flags?
21:28
<
headius >
-G stuff doesn't work anymore
21:29
camlow325 has quit [Read error: Connection reset by peer]
21:29
<
headius >
all the graal pages seem really out of date
21:29
camlow325 has joined #jruby
21:30
<
chrisseaton >
-G should still work if you use your own launcher
21:30
<
chrisseaton >
otherwise -Dgraal. from now on
21:30
<
chrisseaton >
As the VM doesn't know that Graal exists anymore - just JVMCI
21:30
<
chrisseaton >
I can't remember how to print flags though
21:30
<
headius >
yeah I'll just used the latter
21:30
<
headius >
-G doesn't seem to do anything
21:31
<
headius >
ahh, -Dgraal.PrintFlags
21:31
<
chrisseaton >
That's how we translate it
21:31
<
headius >
ahhh I see
21:31
<
headius >
I was doing -J-G
21:31
<
headius >
bypassing
21:32
camlow32_ has joined #jruby
21:32
camlow325 has quit [Read error: Connection reset by peer]
21:33
<
headius >
chrisseaton: we need to get that in native launcher also...
21:34
<
chrisseaton >
Well actually we were thinking of getting rid of -G - it was there to match GraalVM, but now they use those properties
21:34
<
chrisseaton >
I need to check if any of our options need to go into the native launcher though
21:35
<
headius >
hmm, that flag isn't dumping anything either
21:35
<
headius >
frustrating
21:35
<
chrisseaton >
Let me try...
21:35
<
chrisseaton >
Do you mean dumping to IGV?
21:35
<
headius >
I'm just trying to get the list of flags
21:35
<
headius >
nothing does anything
21:36
<
headius >
0.12 oracle graal
21:36
<
chrisseaton >
I think the problem is Graal won't look for flags until it is loaded
21:36
<
headius >
sure, but why wouldn't it be loading?
21:37
<
headius >
Chris T told me I needed to force a compilation, but this is running for minutes with no output from graal
21:38
<
headius >
I'm not using the Graal wrapper around javao
21:38
<
headius >
my graal `java` is linked to javao
21:40
<
headius >
chrisseaton: which repo should I build for graal head?
21:40
TheWhip has joined #jruby
21:40
<
chrisseaton >
graal-core
21:41
<
chrisseaton >
I never use Graal to compile Java code so I'm not sure myself
21:42
<
headius >
the old hotspot flags work...I feel like this isn't using graal for JRuby classic anymore
21:42
<
chrisseaton >
just trying it myself...
21:43
<
headius >
it seems to work for JT...roughly 2.5x faster than classic
21:44
<
headius >
at least on the benches I'm trying
21:45
<
chrisseaton >
So back up - what are you trying to do? JT doesn't run Graal to compile Java
21:45
<
chrisseaton >
So that working doesn't tell us anything
21:45
TheWhip has quit [Ping timeout: 276 seconds]
21:46
<
headius >
I'm trying to use graal to run JRuby classic
21:46
e_dub has quit [Quit: ZZZzzz…]
21:46
<
chrisseaton >
Are you using your launcher?
21:46
<
headius >
I thought oracle graal would do that
21:46
<
chrisseaton >
Try without that - I think it sets -server by default, which may turn off Graal
21:47
<
headius >
ah that could be
21:47
<
enebo >
perhaps we need more output in -v :)
21:47
<
enebo >
it seems like we have all run the wrong thing at one time now
21:50
<
headius >
still nothing
21:50
<
headius >
calling java directly with -graal and -Dgraal.PrintFlags=true
21:50
<
headius >
chrisseaton: by capital "JT" I just mean JRuby+Truffle, not using your jt script
21:51
<
headius >
in case that was unclear
21:51
<
chrisseaton >
But ignore that because it doesn't use Graal in the same way at all, so the configuration etc is totally different
21:51
<
headius >
this may explain why I stopped seeing the fractal bench improvements
21:51
<
headius >
I can't see any evidence this JDK is using graal to compile anything
21:52
<
headius >
OpenJDK 64-Bit Server VM (build 25.66-b00-graalvm-0.12, mixed mode)
21:52
<
chrisseaton >
wait wait wait I know this... one minute
21:54
<
headius >
tried turning off tiered, nothing
21:54
<
headius >
java -Djruby.home=`pwd` -XX:-TieredCompilation -graal -Dgraal.PrintFlags=true -Djruby.compile.invokedynamic -jar lib/jruby.jar ...
21:54
<
headius >
my incantation has not summoned up a graal demon
21:55
<
chrisseaton >
-Djvmci.Compiler=graal
21:56
<
chrisseaton >
not working for me - sorry that was a guess
21:56
<
headius >
yeah nothing :-(
21:56
<
headius >
I'll ask Chris T
21:58
enebo has quit [Quit: enebo]
21:58
<
chrisseaton >
Well let me know when you figure it out
21:58
<
chrisseaton >
I should know this stuff!
21:59
<
chrisseaton >
-J-XX:+UnlockExperimentalVMOptions -J-XX:+EnableJVMCI
21:59
<
chrisseaton >
That might be needed, but can't see why GraalVM doesn't have that by default
22:00
<
headius >
he thinks 0.12 is too old, but even the old flags don't work
22:01
<
GitHub123 >
jruby/master be2b945 Benoit Daloze: [Truffle] Slow tags.
22:02
<
chrisseaton >
Hmmm yeah it is months old actually
22:02
<
chrisseaton >
Let me try with what I built from source
22:02
<
chrisseaton >
Before you waste your time trying that...
22:05
<
headius >
the mx repo is surprisingly large for a bunch of python scripts
22:09
camlow325 has joined #jruby
22:09
<
headius >
shutil.Error: [('/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/jre/lib/server/hsdis-amd64.dylib', '/Users/headius/projects/graal/graal-jvmci-8/jdk1.8.0_92/product/jre/lib/server/hsdis-amd64.dylib', "[Errno 13] Permission denied: '/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/jre/lib/server/hsdis-amd64.dylib'")]
22:09
<
headius >
god dammit.
22:09
camlow32_ has quit [Read error: Connection reset by peer]
22:09
<
headius >
I guess I'll remove my disassembly lib for now
22:10
<
headius >
seems to be building now
22:10
<
headius >
permissions must have been wonky
22:10
camlow325 is now known as 5EXAA3TAH
22:10
camlow325 has joined #jruby
22:10
camlow325 has quit [Remote host closed the connection]
22:10
<
chrisseaton >
I was missing -XX:+UseJVMCICompiler
22:10
<
chrisseaton >
But now I get JVMCI compiler 'graal' not found
22:10
<
chrisseaton >
JAVACMD=../../graal/graalvm-0.12-dk/bin/java bin/jruby -J-server -J-XX:+UnlockExperimentalVMOptions -J-XX:+EnableJVMCI -J-XX:+UseJVMCICompiler -J-Djvmci.Compiler=graal -J-Dgraal.PrintFlags=true ../test.rb
22:10
<
chrisseaton >
bingo!
22:10
<
chrisseaton >
I'm writing that down
22:10
<
chrisseaton >
Works on 0.12 as well
22:11
camlow325 has joined #jruby
22:12
<
headius >
wow that was way more painful than I expected
22:14
camlow325 has quit [Remote host closed the connection]
22:14
5EXAA3TAH has quit [Ping timeout: 244 seconds]
22:14
<
headius >
heh... I do not recommend -graal...minutes to start up
22:15
<
chrisseaton >
Bootstrapping?
22:15
camlow325 has joined #jruby
22:15
<
headius >
bleh...this is still dog slow
22:19
TheWhip has joined #jruby
22:21
<
chrisseaton >
Would be cool if you turn Graal on just for your generated bytecode
22:21
<
headius >
yeah, I'm trying to get familiar with it now and see what we can discover
22:21
<
headius >
if it's inlining through indy sites and partial EA is working I should be seeing better results
22:22
<
chrisseaton >
You need to actually sit down with a Graal person for a couple of days and see what you can get out of it
22:22
<
headius >
I can't get this thing to run any bench faster
22:23
<
headius >
yeah, I'll probably be bugging Chris T a lot over the next weeks
22:23
<
headius >
I'll get something together to post to graal-dev too
22:23
<
chrisseaton >
It's probably the indy - which we don't exercise much
22:24
<
chrisseaton >
And if that blocks something it would block everything in JRuby generated code
22:24
TheWhip has quit [Ping timeout: 244 seconds]
22:24
<
headius >
indy is nonnegotiable for us
22:25
<
chrisseaton >
But leaving that aside for a second, is it faster on Graal without it?
22:25
<
headius >
well let me see
22:25
<
headius >
it's definitely slower with indy on
22:26
<
headius >
roughly equivalent perf without indy on
22:27
<
headius >
this is still 0.12 keep in mind
22:27
claudiuinberlin has quit []
22:30
camlow32_ has joined #jruby
22:31
camlow32_ has quit [Read error: Connection reset by peer]
22:31
camlow32_ has joined #jruby
22:35
camlow325 has quit [Ping timeout: 276 seconds]
22:40
<
headius >
still slow with head
23:21
pawnbox has joined #jruby
23:26
pawnbox has quit [Ping timeout: 244 seconds]
23:38
camlow32_ has quit [Remote host closed the connection]
23:44
camlow325 has joined #jruby
23:50
e_dub has joined #jruby
23:52
e_dub has quit [Read error: Connection reset by peer]
23:52
e_dub has joined #jruby
23:58
camlow325 has quit []
23:59
TheWhip has joined #jruby