[ 
https://issues.apache.org/jira/browse/BEAM-7945?focusedWorklogId=315208&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-315208
 ]

ASF GitHub Bot logged work on BEAM-7945:
----------------------------------------

                Author: ASF GitHub Bot
            Created on: 19/Sep/19 17:50
            Start Date: 19/Sep/19 17:50
    Worklog Time Spent: 10m 
      Work Description: mxm commented on pull request #9452: [BEAM-7945] Allow 
runner to configure semi_persist_dir which is used …
URL: https://github.com/apache/beam/pull/9452#discussion_r326304747
 
 

 ##########
 File path: 
runners/java-fn-execution/src/main/java/org/apache/beam/runners/fnexecution/environment/DockerEnvironmentFactory.java
 ##########
 @@ -132,20 +133,30 @@ public RemoteEnvironment createEnvironment(Environment 
environment) throws Excep
             // host networking on Mac)
             .add("--env=DOCKER_MAC_CONTAINER=" + 
System.getenv("DOCKER_MAC_CONTAINER"));
 
-    List<String> args =
-        ImmutableList.of(
-            String.format("--id=%s", workerId),
-            String.format("--logging_endpoint=%s", loggingEndpoint),
-            String.format("--artifact_endpoint=%s", artifactEndpoint),
-            String.format("--provision_endpoint=%s", provisionEndpoint),
-            String.format("--control_endpoint=%s", controlEndpoint));
+    Boolean retainDockerContainer =
+        
pipelineOptions.as(ManualDockerEnvironmentOptions.class).getRetainDockerContainers();
+    if (!retainDockerContainer) {
+      dockerOptsBuilder.add("--rm");
+    }
+
+    String semiPersistDir = 
pipelineOptions.as(RemoteEnvironmentOptions.class).getSemiPersistDir();
+    ImmutableList.Builder<String> argsBuilder =
+        ImmutableList.<String>builder()
+            .add(String.format("--id=%s", workerId))
+            .add(String.format("--logging_endpoint=%s", loggingEndpoint))
+            .add(String.format("--artifact_endpoint=%s", artifactEndpoint))
+            .add(String.format("--provision_endpoint=%s", provisionEndpoint))
+            .add(String.format("--control_endpoint=%s", controlEndpoint));
+    if (semiPersistDir != null) {
 
 Review comment:
   Actually, the semi_persist_dir is not inferred from the pipeline options in 
the bootloader code. Like you said, it has to be this way currently, but it 
would be nice to not duplicate this information in the future.
 
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Issue Time Tracking
-------------------

    Worklog Id:     (was: 315208)
    Time Spent: 4h  (was: 3h 50m)

> Allow runner to configure "semi_persist_dir" which is used in the SDK harness
> -----------------------------------------------------------------------------
>
>                 Key: BEAM-7945
>                 URL: https://issues.apache.org/jira/browse/BEAM-7945
>             Project: Beam
>          Issue Type: Sub-task
>          Components: java-fn-execution, sdk-go, sdk-java-core, sdk-py-core
>            Reporter: sunjincheng
>            Assignee: sunjincheng
>            Priority: Major
>             Fix For: 2.17.0
>
>          Time Spent: 4h
>  Remaining Estimate: 0h
>
> Currently "semi_persist_dir" is not configurable. This may become a problem 
> in certain scenarios. For example, the default value of "semi_persist_dir" is 
> "/tmp" 
> ([https://github.com/apache/beam/blob/master/sdks/python/container/boot.go#L48])
>  in Python SDK harness. When the environment type is "PROCESS", the disk of 
> "/tmp" may be filled up and unexpected issues will occur in production 
> environment. We should provide a way to configure "semi_persist_dir" in 
> EnvironmentFactory at the runner side. 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to