{"action":"created","issue":{"url":"https://api.github.com/repos/apache/spark/issues/4367","labels_url":"https://api.github.com/repos/apache/spark/issues/4367/labels{/name}","comments_url":"https://api.github.com/repos/apache/spark/issues/4367/comments","events_url":"https://api.github.com/repos/apache/spark/issues/4367/events","html_url":"https://github.com/apache/spark/pull/4367","id":56521135,"number":4367,"title":"[SPARK-5529][Core]Replace blockManager's timeoutChecking with executor's timeoutChecking","user":{"login":"lianhuiwang","id":545478,"avatar_url":"https://avatars.githubusercontent.com/u/545478?v=3","gravatar_id":"","url":"https://api.github.com/users/lianhuiwang","html_url":"https://github.com/lianhuiwang","followers_url":"https://api.github.com/users/lianhuiwang/followers","following_url":"https://api.github.com/users/lianhuiwang/following{/other_user}","gists_url":"https://api.github.com/users/lianhuiwang/gists{/gist_id}","starred_url":"https://api.github.com/users/lianhuiwang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lianhuiwang/subscriptions","organizations_url":"https://api.github.com/users/lianhuiwang/orgs","repos_url":"https://api.github.com/users/lianhuiwang/repos","events_url":"https://api.github.com/users/lianhuiwang/events{/privacy}","received_events_url":"https://api.github.com/users/lianhuiwang/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":8,"created_at":"2015-02-04T12:35:21Z","updated_at":"2015-02-10T01:13:28Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/apache/spark/pulls/4367","html_url":"https://github.com/apache/spark/pull/4367","diff_url":"https://github.com/apache/spark/pull/4367.diff","patch_url":"https://github.com/apache/spark/pull/4367.patch"},"body":"the phenomenon is:\r\nblockManagerSlave is timeout and BlockManagerMasterActor will remove this blockManager, but executor on this blockManager is not timeout because akka's heartbeat is normal.\r\nBecause blockManager is in executor, if blockManager is removed, executor on this blockManager should be removed too.\r\nEspecially when dynamicAllocation is enabled, allocationManager listen onBlockManagerRemoved and remove this executor. but actually in CoarseGrainedSchedulerBackend it is still in executorDataMap.\r\n\r\nso i think that we can remove timeoutChecking of BlockManagerMasterActor. and add executor's timeoutChecking of HeartbeatReceiver.\r\nif executor is timeout in HeartbeatReceiver, \r\nFirstly,we tell TaskSchedulerImpl to executorLost and TaskSchedulerImpl will tell dagScheduler executorLost, then dagScheduler will tell blockManagerMaster to remove BlockManager of this executor.\r\nNext, we tell CoarseGrainedSchedulerBackend to kill executor that is timeout by SparkContext.killExecutor api.\r\nIn the future, if we remove akka and implement ourself RPC, we just need to replace akka. and timeoutChecking of HeartbeatReceiver can be reserved for other RPC.\r\nMaybe we should change \"spark.storage.blockManagerSlaveTimeoutMs\" to \"spark.executor.slaveTimeoutMs\", \"spark.storage.blockManagerTimeoutIntervalMs\" to \"spark.executor.timeoutIntervalMs\"?\r\n@rxin @tdas @sryza @andrewor14 "},"comment":{"url":"https://api.github.com/repos/apache/spark/issues/comments/73625959","html_url":"https://github.com/apache/spark/pull/4367#issuecomment-73625959","issue_url":"https://api.github.com/repos/apache/spark/issues/4367","id":73625959,"user":{"login":"lianhuiwang","id":545478,"avatar_url":"https://avatars.githubusercontent.com/u/545478?v=3","gravatar_id":"","url":"https://api.github.com/users/lianhuiwang","html_url":"https://github.com/lianhuiwang","followers_url":"https://api.github.com/users/lianhuiwang/followers","following_url":"https://api.github.com/users/lianhuiwang/following{/other_user}","gists_url":"https://api.github.com/users/lianhuiwang/gists{/gist_id}","starred_url":"https://api.github.com/users/lianhuiwang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lianhuiwang/subscriptions","organizations_url":"https://api.github.com/users/lianhuiwang/orgs","repos_url":"https://api.github.com/users/lianhuiwang/repos","events_url":"https://api.github.com/users/lianhuiwang/events{/privacy}","received_events_url":"https://api.github.com/users/lianhuiwang/received_events","type":"User","site_admin":false},"created_at":"2015-02-10T01:13:28Z","updated_at":"2015-02-10T01:13:28Z","body":"yes ,i will close this PR. thanks all."}}