lostluck commented on code in PR #16658:
URL: https://github.com/apache/beam/pull/16658#discussion_r1015977504


##########
sdks/python/container/boot.go:
##########
@@ -137,46 +145,49 @@ func main() {
 
        options, err := provision.ProtoToJSON(info.GetPipelineOptions())
        if err != nil {
-               log.Fatalf("Failed to convert pipeline options: %v", err)
+               return fmt.Errorf("Failed to convert pipeline options: %v", err)
        }
 
        // (2) Retrieve and install the staged packages.
        //
-       // Guard from concurrent artifact retrieval and installation,
-       // when called by child processes in a worker pool.
+       // No log.Fatalf() from here on, otherwise deferred cleanups will not 
be called!

Review Comment:
   But the part I was commenting on is before any defer calls are being made. 
This comment is about the factoring for making the function more readable and 
maintainable, improving the change being made, not reverting it.  
   
   Basically the change is good, but the implementation scope is unnecessarily 
broad.  which puts additional strain on a reader for tracking which scope 
they're in, when instead this change can accomplish it's goal (ensuring the 
defered cleanups and goroutines are shutdown in an orderly fashion), and 
improve readability, via smaller, easier to understand functions composed with 
purpose.



##########
sdks/python/container/boot.go:
##########
@@ -73,13 +74,20 @@ const (
 )
 
 func main() {
+       if err := mainError(); err != nil {
+               log.Print(err)
+               os.Exit(1)
+       }
+}
+
+func mainError() error {

Review Comment:
   Ping.



##########
sdks/python/container/boot.go:
##########
@@ -73,13 +74,20 @@ const (
 )
 
 func main() {
+       if err := mainError(); err != nil {
+               log.Print(err)
+               os.Exit(1)
+       }
+}
+
+func mainError() error {
        flag.Parse()

Review Comment:
   This should still be in the actual main(), and not tucked into the function.



##########
sdks/python/container/boot.go:
##########
@@ -73,13 +74,20 @@ const (
 )
 
 func main() {
+       if err := mainError(); err != nil {
+               log.Print(err)
+               os.Exit(1)

Review Comment:
   OK, that's fair. The question is now why not use *log.Fatal* here instead of 
the manual print + Exit. We're already out of the function scope.



-- 
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.

To unsubscribe, e-mail: github-unsubscr...@beam.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to