Wednesday, 2015-07-08

*** projectodd-ci <projectodd-ci!~PircBotx@ec2-54-221-39-150.compute-1.amazonaws.com> has quit IRC ()03:07
*** projectodd-ci <projectodd-ci!~PircBotx@ec2-54-221-39-150.compute-1.amazonaws.com> has joined #immutant03:23
*** Guest9000 <Guest9000!~textual@c-71-198-23-174.hsd1.ca.comcast.net> has joined #immutant03:56
*** deadghost <deadghost!~deadghost@164.169.48.60.cbj06-home.tm.net.my> has joined #immutant05:24
*** Guest9000 <Guest9000!~textual@c-71-198-23-174.hsd1.ca.comcast.net> has quit IRC (Quit: My Mac has gone to sleep. ZZZzzz…)05:32
*** mgoldmann|away is now known as mgoldmann06:14
*** qwerty_nor <qwerty_nor!~Thunderbi@5.248.107.224> has joined #immutant06:35
*** deadghost <deadghost!~deadghost@164.169.48.60.cbj06-home.tm.net.my> has quit IRC (Read error: Connection reset by peer)06:37
*** deadghost <deadghost!~deadghost@164.169.48.60.cbj06-home.tm.net.my> has joined #immutant06:38
*** qwerty_nor <qwerty_nor!~Thunderbi@5.248.107.224> has quit IRC (Ping timeout: 264 seconds)06:52
*** dm3 <dm3!~dm3@pub082136107106.dh-hfc.datazug.ch> has joined #immutant06:58
*** deadghost <deadghost!~deadghost@164.169.48.60.cbj06-home.tm.net.my> has quit IRC (Ping timeout: 264 seconds)07:45
*** dark4eg <dark4eg!~dark4eg@188.168.34.194> has joined #immutant07:47
*** kschrader <kschrader!uid41175@gateway/web/irccloud.com/x-vjvcpxqcesctwowk> has quit IRC (Quit: Connection closed for inactivity)07:55
*** marianoguerra <marianoguerra!~marianogu@p4FDBCBE9.dip0.t-ipconnect.de> has joined #immutant08:17
*** marianoguerra <marianoguerra!~marianogu@emesene/grandpa/marianoguerra> has joined #immutant08:17
*** dm3 <dm3!~dm3@pub082136107106.dh-hfc.datazug.ch> has quit IRC (Remote host closed the connection)08:19
*** seangrove <seangrove!~user@c-50-174-77-118.hsd1.ca.comcast.net> has quit IRC (Remote host closed the connection)08:33
*** seangrove <seangrove!~user@c-50-174-77-118.hsd1.ca.comcast.net> has joined #immutant08:33
*** dm3 <dm3!~dm3@pub158181119172.dh-hfc.datazug.ch> has joined #immutant08:58
*** deadghost <deadghost!~deadghost@164.169.48.60.cbj06-home.tm.net.my> has joined #immutant09:55
*** deadghost <deadghost!~deadghost@164.169.48.60.cbj06-home.tm.net.my> has quit IRC (Read error: Connection reset by peer)09:58
*** deadghost <deadghost!~deadghost@164.169.48.60.cbj06-home.tm.net.my> has joined #immutant09:59
*** deadghost <deadghost!~deadghost@164.169.48.60.cbj06-home.tm.net.my> has quit IRC (Read error: Connection reset by peer)10:00
*** deadghost <deadghost!~deadghost@164.169.48.60.cbj06-home.tm.net.my> has joined #immutant10:01
*** tcrawley-away is now known as tcrawley10:42
*** tcrawley <tcrawley!~tcrawley@redhat/jboss/tcrawley> has quit IRC (Quit: ZNC - http://znc.in)10:50
*** proddbot <proddbot!~irclj@162.243.1.108> has quit IRC (Remote host closed the connection)10:50
*** tcrawley <tcrawley!~tcrawley@redhat/jboss/tcrawley> has joined #immutant11:00
*** proddbot <proddbot!~irclj@162.243.1.108> has joined #immutant11:03
*** qwerty_nor <qwerty_nor!~Thunderbi@5.248.107.224> has joined #immutant11:27
*** marianoguerra <marianoguerra!~marianogu@emesene/grandpa/marianoguerra> has quit IRC (Read error: Connection reset by peer)11:40
*** marianoguerra <marianoguerra!~marianogu@emesene/grandpa/marianoguerra> has joined #immutant11:44
*** conan <conan!~conan@mdproctor.plus.com> has quit IRC (Ping timeout: 250 seconds)12:22
*** tcrawley is now known as tcrawley-away12:30
*** bbrowning_away is now known as bbrowning12:43
*** agarman <agarman!~agarman@169.130.108.20> has joined #immutant12:52
*** abstractj <abstractj!~abstractj@191.181.34.42> has joined #immutant12:55
*** marianoguerra <marianoguerra!~marianogu@emesene/grandpa/marianoguerra> has quit IRC (Quit: leaving)12:56
*** qwerty_nor <qwerty_nor!~Thunderbi@5.248.107.224> has quit IRC (Remote host closed the connection)12:58
*** qwerty_nor <qwerty_nor!~Thunderbi@5.248.107.224> has joined #immutant12:58
*** abstractj_ <abstractj_!~abstractj@c000.qmx.me> has joined #immutant12:59
*** abstractj <abstractj!~abstractj@191.181.34.42> has quit IRC (Client Quit)13:00
*** abstractj_ is now known as abstractj13:02
*** abstractj <abstractj!~abstractj@c000.qmx.me> has quit IRC (Changing host)13:03
*** abstractj <abstractj!~abstractj@redhat/jboss/abstractj> has joined #immutant13:03
*** jcrossley3-away is now known as jcrossley313:11
*** tcrawley-away is now known as tcrawley13:21
*** marianoguerra <marianoguerra!~marianogu@emesene/grandpa/marianoguerra> has joined #immutant13:23
dark4eghello13:28
tcrawleydark4eg: hello!13:28
dark4egGuys is there any idea to deploy the cluster (all nodes update)?13:30
*** lance|afk is now known as lanceball13:31
tcrawleydark4eg: that's what domain mode does for you: https://docs.jboss.org/author/display/WFLY9/Domain+Setup13:34
jbossbotTitle: Domain Setup - WildFly 9 - Project Documentation Editor13:34
tcrawleyyou run a "domain controller" that you deploy to, and it then deploys to all of the registered nodes13:35
dark4egI am as always very grateful to you gentlemen)13:40
*** deadghost <deadghost!~deadghost@164.169.48.60.cbj06-home.tm.net.my> has quit IRC (Read error: Connection reset by peer)13:41
tcrawleydark4eg: happy to help!13:41
*** deadghost <deadghost!~deadghost@164.169.48.60.cbj06-home.tm.net.my> has joined #immutant13:41
tcrawleybbrowning: jcrossley3: in WildFly, we currently fail the deployment if app init fails. we do that by starting init from a ServletContextListener, but running it in a different thread with a future. We then wait on that future to complete (with a timeout) and throw if it fails or times out (we do all that to prevent a deploy from blocking forever)13:45
tcrawleyin EAP, we can't do that13:45
tcrawleyin jbossweb, parts of the ServletContext are synchronized, and the path that calls the listener locks13:46
tcrawleyand calling addServlet needs to acquire that same lock13:46
tcrawleyso the WF approach deadlocks13:46
tcrawleyrignt now, I've disabled the future, so things work, except now a failed init won't fail the deploy13:47
bbrowninghmm13:47
tcrawleyI'm looking for ideas on how to restore that failitude13:47
*** danielglauser <danielglauser!~danielgla@static-108-30-147-110.nycmny.fios.verizon.net> has joined #immutant13:47
bbrowningtcrawley: so it's some kind of manual synchronization not synchronized keyword?13:48
tcrawleyno, it's the synchronized kw on methods13:48
bbrowningahh but separate threads - right13:48
tcrawleyyeah13:48
bbrowningwell a deploy won't block forever in EAP13:49
bbrowningafter some timeout it will error13:49
bbrowningI would have assumed the same was true in wildfly though13:49
tcrawleyhmm, I thought that was the case in WF as well, yeah13:49
tcrawleybut this was motivated by a user issue where it didn't timeout13:49
tcrawleyI think it doesn't timeout because we're not in an msc service, but hanging off of the machinery of servlet context init13:50
bbrowningahh - perhaps this isn't part of the deployment phase, then?13:50
bbrowningyeah13:50
jcrossley3is there really that much more value failing the deployment than just logging an error if init barfs?13:50
tcrawleyif you are automating deployment, you can tell when a deployment is bad if it fails. that's harder if you also have to check the log13:51
tcrawleyand for immutant/tb, all app init happens through this process, so this is the most likely path for the deployment to fail13:51
jcrossley3do we make it clear that init can't hang?13:52
tcrawleyI believe we do now, yeah13:53
tcrawleybut I'd hate to take a step back and take away the timeout feature13:53
bbrowningperhaps there's another way13:53
jcrossley3the right place to do "init" is in the init method of a Servlet. can we do that instead of the ServletContextListener?13:53
tcrawleywe would have to deploy a servlet for every app13:54
tcrawleywhich we may need to do anyway, that is a proxy13:54
bbrowningand a single app may deploy many servlets13:54
jcrossley3is that so wrong? (harvey firestein voice)13:54
bbrowningimho a servletcontextlistener is the right place to do things like add servlets13:55
tcrawleybecause with the current setup, I don't think we can easily undeploy servlets13:55
bbrowningI don't think we could even do that from a servlet's init13:55
tcrawleycurrent == my EAP hacks13:55
tcrawleyaccording to the docs, ServletContainerInitializer is an even better place13:55
tcrawleythat's where I'm doing it atm13:55
tcrawleybut I ended up there trying to work around the lock13:55
tcrawleywhich was a false path13:56
bbrowningthere's a reason I didn't do it there, I think13:56
jcrossley3tcrawley: first i've heard of that :)13:56
bbrowningbut I don't recall that reason13:56
tcrawleyprobably because there's no stop mechanism there13:56
tcrawleyyou are shutting down WunderBoss in the SCL's contextDestroyed method13:57
bbrowningahh yeah that's probably it13:57
tcrawleyjcrossley3: I think it may be new in servlet 3.x13:57
jcrossley3yeah13:57
tcrawleyugh, I don't think we can do a servlet that proxies to other servlets and still support websockets13:58
jcrossley3so what servlet thingy currently calls the app entry point (main in immutant)13:58
tcrawleyman, I hate servlets13:58
tcrawleyright now, it's ServletContainerInitializer.onStartup13:58
tcrawleyin my code13:59
bbrowningwhy do we need a proxy again?13:59
tcrawleybefore, it was ServletContextListener.contextInitialized13:59
tcrawleybut they are basically equivalent for our purposes13:59
jcrossley3tcrawley: so i think our goal should be to make some servlet's init method do it instead14:00
jcrossley3that's the least hacky way to fail a deployment14:00
bbrowningor perhaps a filter14:00
bbrowningfilter has the advantage of not having to take up some web url namespace just to init14:00
bbrowningjcrossley3: but I'm still quite certain you can't add more filters/servlets from a filter or servlet14:00
tcrawleybbrowning: I *think* all the pathology stuff is what allowed us to unregister servlets from paths, so the proxy would be a way to do that14:01
tcrawleyyeah, servlet#init or a filter is too late to add other servlets14:01
bbrowningso we'd have to give up letting users mount servlets14:01
bbrowningwe could still get our rack/ring adapters working, but users can't bring existing servlets14:02
tcrawleywe need to allow servlets, for pedestal14:02
tcrawleyand need to mount them to support websockets, I think14:02
jcrossley3ffs14:03
tcrawleyif we do give up the deployment timeout, I think we're good14:03
bbrowningtcrawley: so what if we try something different here14:04
tcrawleywe could even just give it up in EAP14:04
tcrawleyand document that14:04
tcrawleysup?14:04
bbrowningdon't do all the deploy stuff on a new thread14:04
bbrowningdo it on the main thread that already has the necessary locks14:04
bbrowningbut still spawn a new thread and have that thread interrupt the first thread after a timeout w/o deploy finished?14:04
bbrowningyou'd need a barrier or whatever to mark deploy finish14:04
tcrawleyhmm, that's interesting14:04
tcrawleyyeah, I think I can test that pretty easily14:05
bbrowningnew thread should be a simple     boolean finished = latch.await(10, TimeUnit.SECONDS); if (!finished) { mainThread.interrupt(); }14:07
bbrowningor something like thatish14:07
tcrawleyyeah14:08
bbrowningthere is a bit of a rabbit hole here depending on how the main thread is blocked14:09
bbrowningwe don't exactly know what may catch the InterruptedException in clojure/ruby code, since it could be anything14:09
tcrawleyI think we can just do best effort14:11
tcrawleyand we may be able to change the state of an MSC service as well if need be14:11
bbrowningit's likely that whatever method is keeping the main thread blocked throws an InterruptedException anyway in java land14:12
bbrowningie if it's blocked it must be doing some kind of waiting14:12
tcrawleyare you saying it's likely that something is going to catch the exception?14:17
*** kschrader <kschrader!uid41175@gateway/web/irccloud.com/x-blkdaderhwfcpond> has joined #immutant14:23
bbrowningtcrawley: it's possible, is all14:31
bbrowningsomewhere in the stack something either has to catch it or rethrow it I bet14:31
bbrowningsince it's a checked exception14:31
tcrawleyyeah14:31
bbrowningbut catching it would be ok if it catches it and then shuts itself down14:32
tcrawleysomething caught and swallowed it in my simple test ((Thread/sleep 10000) in init of an immutant app)14:32
tcrawleyand init continued14:32
bbrowningbut the sleep was interrupted, right?14:33
bbrowningit is a rabbit hole here14:33
tcrawleyyeah. and should have rethrown14:33
tcrawleybut didn't14:33
tcrawleyhmm, actually, the sleep wasn't interrupted, it just completed14:37
tcrawleymaybe I'm interrupting wrongly14:37
jcrossley3you guys should know better than to think interrupt will work14:38
bbrowningyou just have to interrupt in a loop14:38
bbrowningwhile (!mainThread.interrupted()) { mainThread.interrupt(); Thread.sleep(50); }14:38
bbrowningheh14:38
* jcrossley3 votes no14:39
bbrowningDO IT14:39
jcrossley3you're a rebel, dottie14:39
bbrowningtcrawley: so if you give up on interrupts, I have another idea that will involve writing more code14:49
tcrawleylet's hear it14:49
* tcrawley loves writing code14:49
bbrowningso what has to happen on the main thread14:50
bbrowningjust calls to ServletContext.addServlet, right?14:50
bbrowningso do spin up the new thread and do everything in it like usual, except any calls to addServlet14:50
bbrowningyou do those in the original thread14:50
bbrowningpassing the params necessary (Servlet object, whatever else) via a BlockingQueue between threads14:51
bbrowningoriginal thread is in a while loop and loops until a timeout or init finished from 2nd thread14:51
bbrowningin each loop iteration it awaits for items from the queue14:51
tcrawleyhmm14:51
tcrawleythat might work14:51
tcrawleyand is fun to write to boot!14:51
*** deadghost <deadghost!~deadghost@164.169.48.60.cbj06-home.tm.net.my> has quit IRC (Ping timeout: 252 seconds)14:51
bbrowningit's a bit of a pain because you have to find the point in the code where we actually call ServletContext.addServlet and proxy it14:52
bbrowning"proxy it" meaning shove stuff onto a queue and hand it off to original thread14:52
tcrawleybut that all happens one place currently - inside WildFlyWeb14:52
bbrowningmakes it easier14:52
bbrowningwe may want futures and such to be notified or success / error of each addservlet proxied call14:53
tcrawleyyeah14:53
bbrowningactually this is starting to sound more like an executorservice14:54
bbrowningvs just a blockingqueue14:54
bbrowningbut I think all executorservice impls assume new threads14:54
tcrawleyyes, I don't think we can enlist the servlet thread in the pool14:54
*** tcrawley is now known as tcrawley-away15:24
*** Guest9000 <Guest9000!~textual@c-71-198-23-174.hsd1.ca.comcast.net> has joined #immutant15:25
*** mgoldmann is now known as mgoldmann|away15:28
*** Guest9000 <Guest9000!~textual@c-71-198-23-174.hsd1.ca.comcast.net> has quit IRC (Quit: My Mac has gone to sleep. ZZZzzz…)15:41
*** deadghost <deadghost!~deadghost@164.169.48.60.cbj06-home.tm.net.my> has joined #immutant15:52
*** dm3_ <dm3_!~dm3@pub158181119172.dh-hfc.datazug.ch> has joined #immutant16:22
*** dm3 <dm3!~dm3@pub158181119172.dh-hfc.datazug.ch> has quit IRC (Ping timeout: 246 seconds)16:26
*** dm3_ <dm3_!~dm3@pub158181119172.dh-hfc.datazug.ch> has quit IRC (Ping timeout: 246 seconds)16:27
*** tcrawley-away is now known as tcrawley16:28
*** Guest9000 <Guest9000!~textual@c-71-198-23-174.hsd1.ca.comcast.net> has joined #immutant16:36
*** cemerick <cemerick!~cemerick@66.152.203.51> has joined #immutant16:38
*** lanceball is now known as lance|afk16:41
*** cemerick <cemerick!~cemerick@66.152.203.51> has quit IRC (Ping timeout: 244 seconds)16:51
*** danielglauser <danielglauser!~danielgla@static-108-30-147-110.nycmny.fios.verizon.net> has quit IRC (Remote host closed the connection)16:52
*** Guest9000 <Guest9000!~textual@c-71-198-23-174.hsd1.ca.comcast.net> has quit IRC (Quit: My Mac has gone to sleep. ZZZzzz…)16:53
*** danielglauser <danielglauser!~danielgla@static-108-30-147-110.nycmny.fios.verizon.net> has joined #immutant16:58
*** danielglauser <danielglauser!~danielgla@static-108-30-147-110.nycmny.fios.verizon.net> has quit IRC (Remote host closed the connection)17:10
*** Guest9000 <Guest9000!~textual@c-71-198-23-174.hsd1.ca.comcast.net> has joined #immutant17:33
*** marianoguerra <marianoguerra!~marianogu@emesene/grandpa/marianoguerra> has quit IRC (Ping timeout: 250 seconds)17:41
*** danielglauser <danielglauser!~danielgla@static-108-30-147-110.nycmny.fios.verizon.net> has joined #immutant17:43
*** marianoguerra <marianoguerra!~marianogu@p4FDBCBE9.dip0.t-ipconnect.de> has joined #immutant17:44
*** marianoguerra <marianoguerra!~marianogu@emesene/grandpa/marianoguerra> has joined #immutant17:44
*** Guest9000 <Guest9000!~textual@c-71-198-23-174.hsd1.ca.comcast.net> has quit IRC (Quit: My Mac has gone to sleep. ZZZzzz…)17:49
*** danielglauser <danielglauser!~danielgla@static-108-30-147-110.nycmny.fios.verizon.net> has quit IRC (Remote host closed the connection)17:54
*** danielglauser <danielglauser!~danielgla@static-108-30-147-110.nycmny.fios.verizon.net> has joined #immutant17:55
*** jcrossley3 is now known as jcrossley3-away17:56
*** lance|afk is now known as lanceball17:57
*** dm3 <dm3!~dm3@pub082136107106.dh-hfc.datazug.ch> has joined #immutant17:57
*** bbrowning is now known as bbrowning_away17:58
*** marianoguerra <marianoguerra!~marianogu@emesene/grandpa/marianoguerra> has quit IRC (Ping timeout: 256 seconds)18:05
*** tcrawley is now known as tcrawley-away18:05
*** cap10morgan <cap10morgan!~cap10morg@static-108-30-147-110.nycmny.fios.verizon.net> has joined #immutant18:07
*** bbrowning_away is now known as bbrowning18:21
*** dark4eg_ <dark4eg_!~dark4eg@ppp109-111-155-79.tis-dialog.ru> has joined #immutant18:24
*** dark4eg__ <dark4eg__!~dark4eg@83.219.151.234> has joined #immutant18:40
*** dark4eg_ <dark4eg_!~dark4eg@ppp109-111-155-79.tis-dialog.ru> has quit IRC (Ping timeout: 240 seconds)18:41
*** deadghost <deadghost!~deadghost@164.169.48.60.cbj06-home.tm.net.my> has quit IRC (Read error: Connection reset by peer)19:02
*** deadghost <deadghost!~deadghost@164.169.48.60.cbj06-home.tm.net.my> has joined #immutant19:03
*** jcrossley3-away <jcrossley3-away!~user@71-90-202-1.dhcp.stls.mo.charter.com> has quit IRC (Quit: ERC Version 5.3 (IRC client for Emacs))19:12
*** jcrossley3 <jcrossley3!~user@redhat/jboss/jc3> has joined #immutant19:12
*** jcrossle_ <jcrossle_!~user@71-90-202-1.dhcp.stls.mo.charter.com> has joined #immutant19:15
*** jcrossley3 <jcrossley3!~user@redhat/jboss/jc3> has quit IRC (Ping timeout: 256 seconds)19:19
*** jcrossle_ is now known as jcrossley319:20
*** tcrawley-away is now known as tcrawley19:24
*** qwerty_nor <qwerty_nor!~Thunderbi@5.248.107.224> has quit IRC (Quit: qwerty_nor)19:43
*** dm3 <dm3!~dm3@pub082136107106.dh-hfc.datazug.ch> has quit IRC (Remote host closed the connection)19:59
*** agarman <agarman!~agarman@169.130.108.20> has quit IRC (Ping timeout: 240 seconds)20:21
*** agarman <agarman!~agarman@169.130.108.20> has joined #immutant20:23
*** agarman <agarman!~agarman@169.130.108.20> has quit IRC (Ping timeout: 244 seconds)20:28
*** tcrawley is now known as tcrawley-away20:28
*** jcrossle_ <jcrossle_!~user@71-90-202-1.dhcp.stls.mo.charter.com> has joined #immutant20:51
*** jcrossley3 <jcrossley3!~user@71-90-202-1.dhcp.stls.mo.charter.com> has quit IRC (Ping timeout: 256 seconds)20:53
*** dm3 <dm3!~dm3@pub082136107106.dh-hfc.datazug.ch> has joined #immutant20:56
*** jcrossle_ is now known as jcrossley320:58
*** dm3 <dm3!~dm3@pub082136107106.dh-hfc.datazug.ch> has quit IRC (Remote host closed the connection)21:20
*** dm3 <dm3!~dm3@pub082136107106.dh-hfc.datazug.ch> has joined #immutant21:21
*** jcrossle_ <jcrossle_!~user@71-90-202-1.dhcp.stls.mo.charter.com> has joined #immutant21:22
*** dm3 <dm3!~dm3@pub082136107106.dh-hfc.datazug.ch> has quit IRC (Ping timeout: 264 seconds)21:26
*** jcrossley3 <jcrossley3!~user@71-90-202-1.dhcp.stls.mo.charter.com> has quit IRC (Ping timeout: 244 seconds)21:26
*** tcrawley-away is now known as tcrawley21:41
*** deadghost <deadghost!~deadghost@164.169.48.60.cbj06-home.tm.net.my> has quit IRC (Read error: Connection reset by peer)21:42
projectodd-ciStarting build #570 for job immutant.org-staging (previous build: SUCCESS)21:52
projectodd-ciProject immutant.org-staging build #570: SUCCESS in 3 min 51 sec: https://projectodd.ci.cloudbees.com/job/immutant.org-staging/570/21:56
*** bbrowning is now known as bbrowning_away22:05
*** danielglauser <danielglauser!~danielgla@static-108-30-147-110.nycmny.fios.verizon.net> has quit IRC (Remote host closed the connection)22:10
*** cap10morgan <cap10morgan!~cap10morg@static-108-30-147-110.nycmny.fios.verizon.net> has quit IRC (Quit: (null))22:11
*** conan_ <conan_!~conan@85.255.233.159> has joined #immutant22:16
*** jcrossle_ is now known as jcrossley3-away23:23
*** dark4eg__ <dark4eg__!~dark4eg@83.219.151.234> has quit IRC (Ping timeout: 256 seconds)23:31
*** tcrawley is now known as tcrawley-away23:54

Generated by irclog2html.py 2.9.2 by Marius Gedminas - find it at mg.pov.lt!