yaauie has quit [Ping timeout: 256 seconds]
KeyJoo has joined #jruby
mistergibson has quit [Quit: Leaving]
KeyJoo has quit [Quit: KeyJoo]
den_d has quit [Ping timeout: 252 seconds]
den_d has joined #jruby
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> Hey,
<JulesIvanicGitte> As an ugly quick fix to this https://github.com/jruby/jruby/issues/5671#issuecomment-479657935, can we add a “finalizer” to the `Enumerator` created here https://github.com/zendesk/biz/blob/master/lib/biz/periods/linear.rb#L23-L37 which will be in charge to consumme the `@periods` and `@shifts` enumerators ?
<JulesIvanicGitte> @headius ?
<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> ??
aqd has quit [Ping timeout: 246 seconds]
aqd has joined #jruby
aqd has quit [Max SendQ exceeded]
shellac has quit [Quit: Computer has gone to sleep.]
aqd has joined #jruby
sidx64 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
sidx64 has joined #jruby
Liothen- has joined #jruby
Liothen has quit [Ping timeout: 250 seconds]
Liothen- has quit [Client Quit]
Liothen has joined #jruby
Liothen has quit [Changing host]
Liothen has joined #jruby
shellac has joined #jruby
<JulesIvanicGitte> Doesn’t work 😫
sidx64 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<JulesIvanicGitte> my `to_a` method is never called
shellac has quit [Ping timeout: 245 seconds]
shellac has joined #jruby
sidx64 has joined #jruby
sidx64 has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
lucasb has joined #jruby
<enebo> kares[m]: kares: you are good with PR 5677 right? Seems like it is just removing a hack
<JulesIvanicGitte> Hey @headius,
<JulesIvanicGitte> We maybe have a good news with @FlorianDoublet (my engineer also working on this).
<JulesIvanicGitte> He found that if you remove the `.to_enum` in this line https://github.com/zendesk/biz/blob/master/lib/biz/periods/linear.rb#L8, the code doesn’t anymore create any Fiber
<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> Here’s screenshots showing that:
<JulesIvanicGitte> does that sound something possible ?
<JulesIvanicGitte> Hummmm
<JulesIvanicGitte> it seems to work but not always 😅
aqd has quit [Ping timeout: 255 seconds]
rusk has quit [Remote host closed the connection]
xardion has joined #jruby
xardion has quit [Remote host closed the connection]
xardion has joined #jruby
<headius[m]> Removing to_enum probably makes it calculate everything eagerly, so it could be helpful sometimes. I'm on mobile at the moment
<headius[m]> Ah that to_enum
<lopex> headius[m]: this is also interesting https://4comprehension.com/java-stream-api-was-broken-before-jdk10/
shellac has quit [Ping timeout: 255 seconds]
<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> some enumerators doesn’t know enything about the env they were booted in. For example, this one: https://github.com/zendesk/biz/blob/master/lib/biz/timeline/abstract.rb#L12
<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
<lopex> oh, and hocon is quite cool actually
<lopex> headius[m]: and that's where https://github.com/rom-rb/ would play
<lopex> since sql is one of their backends
<lopex> so the sql one is backed by sequel
<lopex> rdubya[m]: btw, where does rails cache db schema
<lopex> doh, the matrix
<lopex> lopex[m]: hello just to ping the tab
<lopex> oh there you go
enebo has quit [Ping timeout: 246 seconds]
travis-ci has joined #jruby
<travis-ci> jruby/jruby (master:1ca6ced by Thomas E. Enebo): The build is still failing. https://travis-ci.org/jruby/jruby/builds/515931863 [213 min 17 sec]
travis-ci has left #jruby [#jruby]
<enebo[m]> I will figure this out tomorrow I guess
<lopex> will it be the numbers ?
subbu|nap is now known as subbu
drbobbeaty has joined #jruby
_whitelogger has joined #jruby