While I was backporting
YARN-5355-branch-2 to a 2.6.0-based code branch, I noticed that the timeline reader daemon would promptly shut down upon start. It turns out that in the 2.6.0 code line at least there are only daemon threads left once the main method returns. That causes the JVM to shut down.
The right pattern to start an embedded jetty web server is to call Server.start() followed by Server.join(). That way, the server stays up reliably no matter what other threads get created.
It works on
YARN-5355 only because there happens to be one other non-daemon thread. We should add the join() call to be always correct.