Skip to content

Session.stop() does not stop the correct session #18

@billreed63

Description

@billreed63

If I have node code that creates multiple Toree session, only one of the sessions will be stopped when session.stop() is used.

The example code creates 5 sessions, then attempts stop each session, only one session is stopped.

node code:

(function (exports, require, module, __filename, __dirname) {
var eclairjs = require('eclairjs');
var spark = new eclairjs();




	//val data = sc.textFile("swift2d://wordcount.myBluemixOs/dream.txt")
//	val data = sc.textFile("swift://wordcount.myBluemixOs/dream.txt")
//	data.count()
var session = [null, null, null, null, null];
function sessionLoop(i) {
	session[i] = spark.sql.SparkSession.builder()
	  .appName("test")
	  .getOrCreate();
	var sc = session[i].sparkContext();
	var rdd = sc.parallelize([1,2,3]);
	
	//rdd.count().then(function(val) {
	//  console.log("Success:", val);
	//  stop();
	//}).catch(stop);
	
	rdd.randomSplit([0.5, 0.5], 0).then(function(split){
	  	var training_RDD = split[0];
	    var validation_RDD = split[1];
	    training_RDD.count().then(function(val) {
	      console.log("Success:", val);
	      stop(i);
	    }).catch(stop);
  });
}
// stop spark streaming when we stop the node program
process.on('SIGTERM', stop);
process.on('SIGINT', stop);

function exit() {
  process.exit(0);
}

function stop(i) {


  if (session[i]) {
	  console.log("stop session " + i);
    session[i].stop().then(
    		function(){
    			session[i] = null;
    			}, exit);
  }
}

for (var i = 0; i < 5; i++) {
	sessionLoop(i);
}

});

When the code is run I see the following messages in the console:

Starting websocket ws://127.0.0.1:8888/api/kernels/f54b51df-59d4-482e-b345-237cc79af9df
Starting websocket ws://127.0.0.1:8888/api/kernels/9c95e464-5819-4eb4-ab91-a4e4295520f9
Starting websocket ws://127.0.0.1:8888/api/kernels/8e51ac99-453f-4ddf-9c88-264b260bd971
Starting websocket ws://127.0.0.1:8888/api/kernels/265baa12-d6f6-4f79-ab97-6b1e640f7aa6
Starting websocket ws://127.0.0.1:8888/api/kernels/9ce7272e-1a1a-4f35-8f7d-cb99f5aef1eb

When session.stop() I see the following error messages:

Kernel does not exist: 8e51ac99-453f-4ddf-9c88-264b260bd971
Kernel does not exist: 8e51ac99-453f-4ddf-9c88-264b260bd971
Kernel does not exist: 8e51ac99-453f-4ddf-9c88-264b260bd971
Kernel does not exist: 8e51ac99-453f-4ddf-9c88-264b260bd971

We seem to be losing track of the sessions and only using one of the sessions.

In Toree console

17/01/16 11:52:38 [INFO] o.a.t.Main$$anon$1 - Shutting down kernel
17/01/16 11:52:38 [INFO] o.a.t.Main$$anon$1 - Shutting down interpreters
17/01/16 11:52:38 [INFO] o.a.t.Main$$anon$1 - Shutting down actor system
[I 11:52:38.964 NotebookApp] Kernel shutdown: 8e51ac99-453f-4ddf-9c88-264b260bd971
[W 11:52:38.966 NotebookApp] Kernel does not exist: 8e51ac99-453f-4ddf-9c88-264b260bd971
[W 11:52:38.967 NotebookApp] 404 DELETE /api/kernels/8e51ac99-453f-4ddf-9c88-264b260bd971?1484585538391 (127.0.0.1) 0.98ms referer=None
[W 11:52:38.968 NotebookApp] Kernel does not exist: 8e51ac99-453f-4ddf-9c88-264b260bd971
[W 11:52:38.968 NotebookApp] 404 DELETE /api/kernels/8e51ac99-453f-4ddf-9c88-264b260bd971?1484585558437 (127.0.0.1) 0.98ms referer=None
[W 11:52:38.969 NotebookApp] Kernel does not exist: 8e51ac99-453f-4ddf-9c88-264b260bd971
[W 11:52:38.969 NotebookApp] 404 DELETE /api/kernels/8e51ac99-453f-4ddf-9c88-264b260bd971?1484585558438 (127.0.0.1) 0.73ms referer=None
[W 11:52:38.970 NotebookApp] Kernel does not exist: 8e51ac99-453f-4ddf-9c88-264b260bd971
[W 11:52:38.970 NotebookApp] 404 DELETE /api/kernels/8e51ac99-453f-4ddf-9c88-264b260bd971?1484585558437 (127.0.0.1) 0.65ms referer=None

When I stop toree I see these messages:

^C[I 12:06:28.724 NotebookApp] interrupted
Serving notebooks from local directory: /Users/billreed/eclairjs_dev/incubator-toree
4 active kernels 
The Jupyter Notebook is running at: http://localhost:8888/
Shutdown this notebook server (y/[n])? ^C[C 12:06:28.868 NotebookApp] received signal 2, stopping
[I 12:06:28.869 NotebookApp] Shutting down kernels
Unauthorized system.exit detected!
17/01/16 12:06:28 [INFO] o.a.t.Main$$anon$1 - Shutting down kernel
17/01/16 12:06:28 [INFO] o.a.t.Main$$anon$1 - Shutting down interpreters
Unauthorized system.exit detected!
Unauthorized system.exit detected!
17/01/16 12:06:28 [INFO] o.a.t.Main$$anon$1 - Shutting down kernel
17/01/16 12:06:28 [INFO] o.a.t.Main$$anon$1 - Shutting down interpreters
17/01/16 12:06:28 [INFO] o.a.t.Main$$anon$1 - Shutting down kernel
17/01/16 12:06:28 [INFO] o.a.t.Main$$anon$1 - Shutting down interpreters
17/01/16 12:06:28 [INFO] o.a.t.Main$$anon$1 - Shutting down actor system
17/01/16 12:06:28 [INFO] o.a.t.Main$$anon$1 - Shutting down actor system
17/01/16 12:06:28 [INFO] o.a.t.Main$$anon$1 - Shutting down actor system
Unauthorized system.exit detected!
17/01/16 12:06:28 [INFO] o.a.t.Main$$anon$1 - Shutting down kernel
17/01/16 12:06:28 [INFO] o.a.t.Main$$anon$1 - Shutting down interpreters
17/01/16 12:06:28 [INFO] o.a.t.Main$$anon$1 - Shutting down actor system
17/01/16 12:06:28 [INFO] o.a.t.Main$$anon$1 - Shutting down interpreters
17/01/16 12:06:28 [INFO] o.a.t.Main$$anon$1 - Shutting down actor system
[I 12:06:29.591 NotebookApp] Kernel shutdown: 265baa12-d6f6-4f79-ab97-6b1e640f7aa6
[I 12:06:29.593 NotebookApp] Kernel shutdown: f54b51df-59d4-482e-b345-237cc79af9df
[I 12:06:29.594 NotebookApp] Kernel shutdown: 9c95e464-5819-4eb4-ab91-a4e4295520f9
[I 12:06:29.594 NotebookApp] Kernel shutdown: 9ce7272e-1a1a-4f35-8f7d-cb99f5aef1eb

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions