[
https://issues.apache.org/jira/browse/LENS-163?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14265542#comment-14265542
]
Raju Bairishetti commented on LENS-163:
---------------------------------------
Ran Lens server in docker to test this patch.
*Looks like server state was not fully written to the hdfs location during the
stop.*
{noformat}
06 Jan 2015 01:35:53,523 [Shutdown] INFO org.apache.lens.server.LensServices
- Persisting server state in hdfs://c92e0253b5b0:9000/tmp/lensserver-test1
06 Jan 2015 01:35:53,527 [Shutdown] INFO org.apache.lens.server.LensServices
- Persisting state of service:session
06 Jan 2015 01:35:53,523 [StatusPoller] INFO
org.apache.lens.server.query.QueryExecutionServiceImpl - Status poller has
been interrupted, exiting
06 Jan 2015 01:35:53,534 [Shutdown] ERROR org.apache.lens.server.LensServices
- Could not persist server state
java.io.IOException: Filesystem closed
at org.apache.hadoop.hdfs.DFSClient.checkOpen(DFSClient.java:730)
at org.apache.hadoop.hdfs.DFSClient.create(DFSClient.java:1471)
at org.apache.hadoop.hdfs.DFSClient.create(DFSClient.java:1413)
at
org.apache.hadoop.hdfs.DistributedFileSystem$6.doCall(DistributedFileSystem.java:387)
at
org.apache.hadoop.hdfs.DistributedFileSystem$6.doCall(DistributedFileSystem.java:383)
at
org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81)
at
org.apache.hadoop.hdfs.DistributedFileSystem.create(DistributedFileSystem.java:383)
at
org.apache.hadoop.hdfs.DistributedFileSystem.create(DistributedFileSystem.java:327)
at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:906)
at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:887)
at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:784)
at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:773)
at
org.apache.lens.server.LensServices.persistLensServiceState(LensServices.java:286)
at org.apache.lens.server.LensServices.stop(LensServices.java:333)
at org.apache.lens.server.LensServer.stop(LensServer.java:143)
at org.apache.lens.server.LensServer$1.run(LensServer.java:244)
06 Jan 2015 01:35:53,541 [Shutdown] INFO
org.apache.hive.service.AbstractService - Service:quota is stopped.
{noformat}
*Stopping the server:*
--------------------------------------------------------
{noformat}
root@c92e0253b5b0:/opt/lens/lens-dist/target/lens-dist-2.0.0-SNAPSHOT-server#
jps | grep -i lens
1688 LensServer
root@c92e0253b5b0:/opt/lens/lens-dist/target/lens-dist-2.0.0-SNAPSHOT-server#
bin/lens-ctl stop
Stopping lens server running as 1688
.Stopped lens server!
root@c92e0253b5b0:/opt/lens/lens-dist/target/lens-dist-2.0.0-SNAPSHOT-server#
jps | grep -i lens
root@c92e0253b5b0:/opt/lens/lens-dist/target/lens-dist-2.0.0-SNAPSHOT-server#
{noformat}
*Lens server logs:*
------------------------
{noformat}
06 Jan 2015 01:29:38,936 [main] INFO
org.glassfish.grizzly.http.server.HttpServer - [HttpServer-1] Started.
06 Jan 2015 01:34:31,627 [lens-server-snapshotter] INFO
org.apache.lens.server.LensServices - Persisting server state in
hdfs://c92e0253b5b0:9000/tmp/lensserver-test1
06 Jan 2015 01:34:31,628 [lens-server-snapshotter] INFO
org.apache.lens.server.LensServices - Persisting state of service:session
06 Jan 2015 01:34:31,977 [lens-server-snapshotter] INFO
org.apache.lens.server.session.HiveSessionService - Session service pesristed
0 sessions
06 Jan 2015 01:34:32,727 [lens-server-snapshotter] INFO
org.apache.lens.server.LensServices - Persisted service session to
hdfs://c92e0253b5b0:9000/tmp/lensserver-test1/session.final
06 Jan 2015 01:34:32,728 [lens-server-snapshotter] INFO
org.apache.lens.server.LensServices - Persisting state of service:query
06 Jan 2015 01:34:32,732 [lens-server-snapshotter] INFO
org.apache.lens.driver.hive.HiveDriver - HiveDriver persisted 0 queries
06 Jan 2015 01:34:32,734 [lens-server-snapshotter] INFO
org.apache.lens.driver.hive.HiveDriver - HiveDriver persisted 0 sessions
06 Jan 2015 01:34:32,734 [lens-server-snapshotter] INFO
org.apache.lens.server.query.QueryExecutionServiceImpl - Persisted 0 queries
06 Jan 2015 01:34:32,790 [lens-server-snapshotter] INFO
org.apache.lens.server.LensServices - Persisted service query to
hdfs://c92e0253b5b0:9000/tmp/lensserver-test1/query.final
06 Jan 2015 01:34:32,790 [lens-server-snapshotter] INFO
org.apache.lens.server.LensServices - Persisting state of service:metastore
06 Jan 2015 01:34:32,837 [lens-server-snapshotter] INFO
org.apache.lens.server.LensServices - Persisted service metastore to
hdfs://c92e0253b5b0:9000/tmp/lensserver-test1/metastore.final
{noformat}
pasting some commands here
{noformat}
root@c92e0253b5b0:/opt/lens/lens-dist/target/lens-dist-2.0.0-SNAPSHOT-server#
grep -A 2 -B 1 "persi" conf/lens-site.xml
<property>
<name>lens.server.persist.location</name>
<value>hdfs://c92e0253b5b0:9000/tmp/lensserver-test1</value>
<description>The directory in which lens server will persist its state when
it is
going down. The location be on any Hadoop compatible file system. Server will
read from
the location when it is restarted and recovery is enabled. So, Server should
have
root@c92e0253b5b0:/opt/lens/lens-dist/target/lens-dist-2.0.0-SNAPSHOT-server#
root@c92e0253b5b0:/opt/lens/lens-dist/target/lens-dist-2.0.0-SNAPSHOT-server#
jps
495 ResourceManager
308 SecondaryNameNode
666 RunJar
188 DataNode
110 NameNode
619 RunJar
1768 Jps
1688 LensServer
588 NodeManager
root@c92e0253b5b0:/opt/lens/lens-dist/target/lens-dist-2.0.0-SNAPSHOT-server#
hostname
c92e0253b5b0
{noformat}
> Fix Lens Server & Stop related issues. Was (Proprietary classes referenced in
> LensServer)
> -----------------------------------------------------------------------------------------
>
> Key: LENS-163
> URL: https://issues.apache.org/jira/browse/LENS-163
> Project: Apache Lens
> Issue Type: Bug
> Components: server
> Affects Versions: 2.0
> Reporter: Srikanth Sundarrajan
> Assignee: Srikanth Sundarrajan
> Fix For: 2.0
>
> Attachments: LENS-163-v1.patch, LENS-163-v2.patch, LENS-163-v3.patch,
> LENS-163.movestoptomain.patch, LENS-163.patch
>
>
> LensServer imports the following dependencies
> {code}
> import sun.misc.Signal;
> import sun.misc.SignalHandler;
> {code}
> and this is being used to register essentially shutdownhook.
> {code}
> ...
> Signal.handle(new Signal("TERM"), new SignalHandler() {
> @Override
> public void handle(Signal signal) {
> ...
> {code}
> We should use Runtime::addShutdownHook() instead.
> Besides issues reported relating to proprietary class references, there are
> other issues in how start & stop are handled. Broadening the scope of this
> issue based on feedback from [~jaideepdhok] and laxman
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)