Puffball_ has quit [Remote host closed the connection]
<kares[m]>
not sure maybe, how far have you guys gotten looking into the issue yourself?
sidx64 has joined #jruby
<headius[m]>
kares check out the issue I updated today, linked by yaauie earlier. It's due to being unable to dig fd out of a channel on Java 9+
<kares[m]>
okay I might look into that
<headius[m]>
Gonna have to start making some decisions about this sort of thing, like going all native when we can't dig up what we need from JDK
rusk has joined #jruby
<headius[m]>
kares: it's late here but I was in the middle of messing with module flags and wanted to dump what I know
<headius[m]>
I did get one command line to work outside of jruby script just by opening up some packages
<headius[m]>
trying to dig it out of my history
<kares[m]>
oh nice co elastic can work-around by setting proper JRUBY_OPTS
<headius[m]>
I think so
<headius[m]>
Ok right, so here's what I know
<headius[m]>
I have not found a command line that works when we check if the package is open before trying to set accessible
<headius[m]>
so the key logic is in FilenoUtil, using the trySetAccessible from my modulator lib, which tries to check if the package is open first
<headius[m]>
I have not managed to find a combination of flags that gets that logic to proceed to set accessible
<headius[m]>
if I make it just blindly setAccessible on the reflected fields and methods, it gets errors or warns...but flags then make it work silently
<headius[m]>
not sure if you noticed but some while back I moified our launchers to use --module-path with JRuby, and in the release dist that module becomes org.jruby.dist
<kares[m]>
yy
<headius[m]>
But for whatever reason that command line doesn't make the module or package look open enough for FilenoUtil
<headius[m]>
also tried --add-opens for that same package, doesn't help...only with blind setAccessible
<headius[m]>
that's what I know...there still may be a combo that works
<headius[m]>
and the issue has my workarounds that are just using native pipe
<headius[m]>
so 🤷
<kares[m]>
okay but the Java ones should still work somehow ... I guess
<kares[m]>
esp. since all the internals are still there
<kares[m]>
will check if I am able to find a work-around for being able to set accessible on the sun.nio.ch internals
<headius[m]>
oh right there's something related
<headius[m]>
it's the combination of native process + non-accessible pipe channels that does this
<headius[m]>
mostly because we can't set the pipe endpoints to be close-on-exec, so it still looks like both ends are open in the child
<headius[m]>
which messes with how it terminates something like `cat`
<headius[m]>
We may be able to mostly mimic open3.rb with pure-Java stuff but not run it as is...it's doing pipe file descriptors and direct process spawning JDK APIs just can't do
<headius[m]>
it would be really complicated to fake it
<headius[m]>
the JDK process stuff is just so bad
sidx64 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<headius[m]>
back to sleep for me...have fun
<kares[m]>
interestingly on linux I do not see the same reproduction error as reported (wout docker)
<kares[m]>
only that out isn't properly redirected
shellac has joined #jruby
claudiuinberlin has joined #jruby
claudiuinberlin has quit [Ping timeout: 268 seconds]
drbobbeaty has joined #jruby
shellac has quit [Quit: Computer has gone to sleep.]
shellac has joined #jruby
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
sidx64 has joined #jruby
sidx64 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<JulesIvanicGitte>
Maybe by making that Linear class working like an enumerator (instead of returning one) and "overriding" the `to_a` function on that Linear class which will act as a "finaliser"
sidx64 has joined #jruby
aqd has joined #jruby
<JulesIvanicGitte>
I have an idea. I'll try to implement it :)
sidx64 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<kares[m]>
headius: would be inclined to also extend Modulator with runtime `addOpens(...)`
<kares[m]>
esp. for internals such as `sun.nio.ch` (non-exported from java.base) seems it needs to be open for each module planning to use it
sidx64 has joined #jruby
drbobbeaty has joined #jruby
sidx64 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
sidx64 has joined #jruby
sidx64 has quit [Client Quit]
sidx64 has joined #jruby
shellac has quit [Ping timeout: 250 seconds]
sidx64 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
shellac has joined #jruby
sidx64 has joined #jruby
<JulesIvanicGitte>
Is there a `close()` or something like that on `Enumerator`s ?
<JulesIvanicGitte>
He found that the `periods` passed to the constructor is already an `Enumerator` containing `n` elements.
<JulesIvanicGitte>
Then, when `periods .to_enum` is called, a new Enumerator is created. This new enumerator doesn’t contains these `n` elements but an Enumerator (which may be the initial one. It’s still to validate)
<JulesIvanicGitte>
@headius the `to_enum` thing was a wrong path
<JulesIvanicGitte>
it doesn’t fix the problem
<headius[m]>
ok
<headius[m]>
The finalizer thought is worth trying
<JulesIvanicGitte>
it’s the simplest and quickest solution I see
<JulesIvanicGitte>
This problem is the last problem for us to fix before being able to put our JRuby versiion of our app in production… 😔
<JulesIvanicGitte>
5 months I work on this MRI to JRuby migration
<JulesIvanicGitte>
😅
<headius[m]>
can you give that a try and let me know?
shellac has joined #jruby
<JulesIvanicGitte>
give what ?
<JulesIvanicGitte>
(edited) ... what ? => ... what a try ?
<headius[m]>
that's mostly what I was hoping we could figure out with the biz people...some way that they could gracefully shut down those enums when they're done
<headius[m]>
the finalizer
<headius[m]>
actually I can throw it in that script quick
<JulesIvanicGitte>
the problem I see is that there’s a chain of enumerators but the childs don’t know their parents. So they can’t terminate them
<JulesIvanicGitte>
plus, some enumerators can be infinite
<JulesIvanicGitte>
So, I don’t see of to finalize those enumerators
<JulesIvanicGitte>
(edited) ... see of to ... => ... see how to ...
<JulesIvanicGitte>
(edited) ... know enything about ... => ... know anything about ...
<JulesIvanicGitte>
How @FlorianDoublet, my engineer, succeed to “fix” the problem was to have only enumerators containing Arrays. It seems that when Enumerators contains enumerators, the problem appears.
<JulesIvanicGitte>
I’ll have to go. I’m in vacations for a few days. I asked to @FlorianDoublet to be present for you here while I’m away.
<headius[m]>
Yes, that makes sense, because the simple array enumerators can avoid using the thread
<JulesIvanicGitte>
So if you need anything, just ask to @FlorianDoublet ;)
<headius[m]>
it's when the code starts pulling values with #next off of multiple non-array enumerators
<headius[m]>
ok cool, we'll figure something out :-)
<JulesIvanicGitte>
Thanks a lot @headius :)
<JulesIvanicGitte>
See you next week
<headius[m]>
👍
aqd has joined #jruby
shellac has quit [Read error: Connection reset by peer]
<headius[m]>
<headius[m] "👍"> kares if we find flags that work with set accessible we could just change those to do it directly
<headius[m]>
And make the exception handler suggest the appropriate flags
shellac has joined #jruby
enebo has left #jruby [#jruby]
enebo has joined #jruby
<enebo[m]>
yowie...matrix on pidgin
shellac has quit [Ping timeout: 245 seconds]
aqd has quit [Remote host closed the connection]
aqd has joined #jruby
<kares[m]>
headius: you mean regarding the PR?
<kares[m]>
it also works with add-opens but we still need the 1 modulator PR
<kares[m]>
just seemed simpler to add that opens at runtime where its needed esp. since it regards sun.nio internals
<kares[m]>
enebo: pretty much - 5677 looks okay to me but I am not entirely in the picture
<kares[m]>
... in why fntctl would have been preferred
<enebo>
kares[m]: I think this was because we did not have that clo_exec at all when it was added
shellac has joined #jruby
shellac has quit [Client Quit]
shellac has joined #jruby
lucasb has quit [Quit: Connection closed for inactivity]
<headius[m]>
kares ok I'll have a look
shellac has quit [Quit: Computer has gone to sleep.]
shellac has joined #jruby
shellac has quit [Client Quit]
subbu is now known as subbu|nap
lucasb has joined #jruby
drbobbeaty has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<lopex>
when's the release ?
<enebo[m]>
lopex: numbers!
<lopex>
yeah
<lopex>
enebo[m]: still having that websocket issue under jruby on sinatra
<lopex>
and I went pretty deep comparing the traffic
<lopex>
still no clue
<enebo>
lopex: ok. I think it will be out by next weds for sure
<lopex>
enebo[m]: so I switched to a user perspective for now, and asked if there's a release
<enebo>
lopex: or at least my world will start to crumble a bit
<lopex>
enebo: how so ?
<enebo>
lopex: going to japan
<enebo>
lopex: then railsconf after that
<enebo>
lopex: it is tough to release in Japan
<lopex>
enebo: in some way I envy you the traveling attitude
<lopex>
enebo: japan firewalls ?
<enebo>
lopex: well I will have 2g network with use of pocket wifi which is 4g but very limited
<enebo>
lopex: So I will have to find some Japanese friends to give me bandwidth
<lopex>
enebo: it's just the tech is not there
<enebo>
and then I do not really have nice env for testing windows easily
<lopex>
sure
<enebo>
lopex: tons of tech but they make getting phones/wifi difficult
<enebo>
lopex: as a fall back I could rent what I need at airport I guess
<lopex>
enebo: well QAM is really impressive
<enebo>
lopex: Japan has fantastic networking...just not for visitors without some pain
<lopex>
policy or customs ?
<lopex>
or biz ?
<enebo>
lopex: government
<lopex>
so policy
<lopex>
ah, yeah, I recall
<enebo>
lopex: yeah but it is changing a lot last few years...I do have auto internet with my phone but it is t-mobile and they do not give great speeds
<lopex>
enebo: can it be compared to other asian countries ?
<enebo>
lopex: I don't know...
<lopex>
I'd assume Japan would be more open, from a nontraveller perspective
<lopex>
enebo: but otherwise, I squished my docker jruby app to 230MBs
<lopex>
jruby/jdk/alpine
<lopex>
I wonder how much it would weigh with rails and deps
<enebo>
lopex: for work?
<lopex>
enebo: yeah
<rdubya[m]>
lopex: ours weighs in at 301.34 and it includes node
<lopex>
rdubya[m]: rails one ?
<rdubya[m]>
yeah
<rdubya[m]>
thats our production build
<lopex>
rdubya[m]: so minimal alpine/jre/jruby I found was like 130isch
<enebo>
rdubya[m]: I am working on mini_racer which embeds node/v8 via J2V8
<lopex>
rdubya[m]: what images do you use ?
<rdubya[m]>
we have a inhouse built jruby/alpine/java-8 build
<rdubya[m]>
that also includes all our assets, etc, which aren't exactly lightweight lol
<lopex>
ah, yeah, I dont want to parcelate my own builds
<lopex>
but at some point I'll have to
<lopex>
I mean image builds
<lopex>
rdubya[m]: also there's the problem with lack of tooling within the image wich helps
<lopex>
sometimes
<rdubya[m]>
yeah
<lopex>
also I am an idiot
<lopex>
I was always reconfiguring the time in the image
<lopex>
until I found I can map /etc/localtime
<rdubya[m]>
good tip!
Karl has joined #jruby
<lopex>
and selinux can be tricky as well
<lopex>
oh well..
<headius[m]>
We need to get remaining module stuff set up in JRuby so we can jlink some small images
<lopex>
I dont especially care about the size
<lopex>
but we have lots of RH satelite only hosts, so...
<lopex>
headius[m]: ^^
<lopex>
I have to scp the images there until we gain the trust for our own registry
<lopex>
headius[m]: and a lots of 6.x yet :P
<lopex>
so it's ruby 2.0x :P
<headius[m]>
Wouldn't it be nice if we could get JRuby I to RHEL
<headius[m]>
In to
<lopex>
I tried to cheat at some point and install sequel on host so I can manage sqlite config db
<lopex>
sorry
<headius[m]>
If we get JRuby into RHEL someone will have a job for a few years 😀
<lopex>
ends up sqlite3 .dump .. | sed .... | load
<lopex>
so, sqlite is disapointing since you cant change the columns
<lopex>
and I always was a believer for an sqlite spring properties db backend
<headius[m]>
A standard lightweight db file format would be useful many places
<lopex>
headius[m]: I know it's a political question, but I wonder if there's RH of https://devuan.org/
<lopex>
version
<lopex>
headius[m]: yeah, but it's always the matter of size/functionality, I can always keep .properties or well the hell .hocon