Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Exception handlers set no exit code #95

Open
woru opened this issue Mar 20, 2013 · 6 comments
Open

Exception handlers set no exit code #95

woru opened this issue Mar 20, 2013 · 6 comments

Comments

@woru
Copy link

woru commented Mar 20, 2013

Exception handlers set no exit code, which causes problems when migrations are called from bash scripts.

Fix:

Index: ruckusing-migrations/lib/Ruckusing/Exception.php
===================================================================
--- ruckusing-migrations/lib/Ruckusing/Exception.php    (revision 6344)
+++ ruckusing-migrations/lib/Ruckusing/Exception.php    (working copy)
@@ -79,6 +79,7 @@
     public static function errorHandler($code, $message, $file, $line)
     {
         file_put_contents('php://stderr', "\n" . basename($file) . "({$line}) : {$message}\n\n");
+        die(1);
     }

     /**
@@ -89,6 +90,7 @@
     public static function exceptionHandler($exception)
     {
         file_put_contents('php://stderr', "\n" . basename($exception->getFile()) . "({$exception->getLine()}) : {$exception->getMessage()}\n\n");
+        die(1);
     }

 }
@ruckus ruckus closed this as completed in 8e6e90e Mar 20, 2013
@ruckus
Copy link
Owner

ruckus commented Mar 20, 2013

Very good point. Thank you for the heads up!

On Mar 20, 2013, at 8:01 AM, woru notifications@github.com wrote:

Exception handlers set no exit code, which causes problems when migrations are called from bash scripts.

Fix:

Index: ruckusing-migrations/lib/Ruckusing/Exception.php

--- ruckusing-migrations/lib/Ruckusing/Exception.php (revision 6344)
+++ ruckusing-migrations/lib/Ruckusing/Exception.php (working copy)
@@ -79,6 +79,7 @@
public static function errorHandler($code, $message, $file, $line)
{
file_put_contents('php://stderr', "\n" . basename($file) . "({$line}) : {$message}\n\n");

  •    die(1);
    

    }

    /**
    @@ -89,6 +90,7 @@
    public static function exceptionHandler($exception)
    {
    file_put_contents('php://stderr', "\n" . basename($exception->getFile()) . "({$exception->getLine()}) : {$exception->getMessage()}\n\n");

  •    die(1);
    

    }

    }

    Reply to this email directly or view it on GitHub.

@salimane
Copy link
Collaborator

Please what was this trying to fix exactly ? can we have a way to reproduce this ? This changes introduces #96 .
Thanks

@salimane salimane reopened this Apr 23, 2013
@woru
Copy link
Author

woru commented Apr 23, 2013

  • env: linux
  • create a migration
  • in the up method add an invalid sql e.g. $this->execute("drop table dssdsdsdsd");
  • create a bash script or run in the command line: php ruckus.php db:migrate && echo "success"

'success' is displayed even though migrations failed

@salimane
Copy link
Collaborator

Here is a sample code I tested with pure php

salimane at salimane-zenbook  in ~
⚛ cat a.php                 
<?php

echo a;

salimane at salimane-zenbook  in ~
⚛ php a.php                 

Notice: Use of undefined constant a - assumed 'a' in /home/salimane/a.php on line 3

Call Stack:
    0.0226     373800   1. {main}() /home/salimane/a.php:0

PHP Notice:  Use of undefined constant a - assumed 'a' in /home/salimane/a.php on line 3
PHP Stack trace:
PHP   1. {main}() /home/salimane/a.php:0

salimane at salimane-zenbook  in ~
⚛ php a.php && echo "success"

Notice: Use of undefined constant a - assumed 'a' in /home/salimane/a.php on line 3

Call Stack:
    0.0228     373800   1. {main}() /home/salimane/a.php:0

PHP Notice:  Use of undefined constant a - assumed 'a' in /home/salimane/a.php on line 3
PHP Stack trace:
PHP   1. {main}() /home/salimane/a.php:0
success

salimane at salimane-zenbook  in ~

Pure php is also showing that behavior.

Thanks

@woru
Copy link
Author

woru commented Jul 3, 2013

You example is invalid. Undefined variable results in a notice not error so result code 'success' is acceptable.
Try:
a.php:

@salimane
Copy link
Collaborator

salimane commented Jul 9, 2013

please could you send a pull request..
Thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants