[ 
https://issues.apache.org/jira/browse/MADLIB-1182?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16502352#comment-16502352
 ] 

Nandish Jayaram commented on MADLIB-1182:
-----------------------------------------

w/ Arvind Sridhar

We fixed this by:
 1) Renaming the test user using the specific database that the IC test
 was run from, making the test user name database-specific.
 2) Dropping schema and user in a try-finally block, so that it's executed even
 on a failed IC run (but we haven't tested if this will trigger in the event of 
a database crash).

If the user is still not dropped on an ungraceful exit, running IC on a 
different database should still go through fine because the IC test username is 
now database specific.

> Install-check test user not dropped gracefully
> ----------------------------------------------
>
>                 Key: MADLIB-1182
>                 URL: https://issues.apache.org/jira/browse/MADLIB-1182
>             Project: Apache MADlib
>          Issue Type: Bug
>          Components: Madpack
>            Reporter: Rahul Iyer
>            Assignee: Nandish Jayaram
>            Priority: Major
>             Fix For: v1.15
>
>
> Madpack creates a test user to run the install-check tests. This user is 
> dropped at the end of the tests. 
> There are two problems with this: 
> 1. The test user is not dropped if the install-check tests don't fail 
> gracefully. 
> 2. If a lingering test user exists in one database, it leads to failure in 
> the install-check run on another database (since the user name is not 
> database specific). 
> In the example below, install-check is run for database {{madlib-pg100}}, but 
> it fails due to a lingering user in database {{madlib-test}}. 
> {code}
> madpack.py : INFO : Detected PostgreSQL version 10.1.
> madpack.py : INFO : *** Installing MADlib ***
> madpack.py : INFO : MADlib tools version    = 1.13-dev 
> (/Users/riyer/Work/MADlib/madlib_builds/build_debug/src/bin/../madpack/madpack.py)
> madpack.py : INFO : MADlib database version = None (host=localhost:54100, 
> db=madlib-pg100, schema=madlib)
> madpack.py : INFO : Testing PL/Python environment...
> madpack.py : INFO : > PL/Python environment OK (version: 2.7.14)
> madpack.py : INFO : Installing MADlib into MADLIB schema...
> madpack.py : INFO : > Creating MADLIB schema
> madpack.py : INFO : > Creating MADLIB.MigrationHistory table
> madpack.py : INFO : > Writing version info in MigrationHistory table
> madpack.py : INFO : > Creating objects for modules:
> madpack.py : INFO : > - array_ops
> madpack.py : INFO : > - bayes
> madpack.py : INFO : > - crf
> madpack.py : INFO : > - elastic_net
> madpack.py : INFO : > - linalg
> madpack.py : INFO : > - pmml
> madpack.py : INFO : > - prob
> madpack.py : INFO : > - sketch
> madpack.py : INFO : > - svec
> madpack.py : INFO : > - svm
> madpack.py : INFO : > - tsa
> madpack.py : INFO : > - stemmer
> madpack.py : INFO : > - conjugate_gradient
> madpack.py : INFO : > - knn
> madpack.py : INFO : > - lda
> madpack.py : INFO : > - stats
> madpack.py : INFO : > - svec_util
> madpack.py : INFO : > - utilities
> madpack.py : INFO : > - assoc_rules
> madpack.py : INFO : > - convex
> madpack.py : INFO : > - glm
> madpack.py : INFO : > - graph
> madpack.py : INFO : > - linear_systems
> madpack.py : INFO : > - recursive_partitioning
> madpack.py : INFO : > - regress
> madpack.py : INFO : > - sample
> madpack.py : INFO : > - summary
> madpack.py : INFO : > - kmeans
> madpack.py : INFO : > - pca
> madpack.py : INFO : > - validation
> madpack.py : INFO : MADlib 1.13-dev installed successfully in MADLIB schema.
> madpack.py : INFO : Arguments: Namespace(command=['install-check'], 
> connstr=['riyer@localhost:54100/madlib-pg100'], keeplogs=True, 
> platform=['postgres'], schema=['madlib'], 
> testcase='recursive_partitioning/decision_tree', tmpdir='/tmp/', verbose=True)
> madpack.py : INFO : Testing database connection...
> madpack.py : INFO : Detected PostgreSQL version 10.1.
> madpack.py : ERROR : SQL command failed:
> SQL: DROP USER IF EXISTS madlib_113_dev_installcheck;
> ERROR:  role "madlib_113_dev_installcheck" cannot be dropped because some 
> objects depend on it
> DETAIL:  9 objects in database *madlib-test*
> Traceback (most recent call last):
>   File 
> "/Users/riyer/Work/MADlib/madlib_builds/build_debug/src/bin/../madpack/madpack.py",
>  line 1440, in <module>
>     main(sys.argv[1:])
>   File 
> "/Users/riyer/Work/MADlib/madlib_builds/build_debug/src/bin/../madpack/madpack.py",
>  line 1312, in main
>     _internal_run_query("DROP USER IF EXISTS %s;" % (test_user), True)
>   File 
> "/Users/riyer/Work/MADlib/madlib_builds/build_debug/src/bin/../madpack/madpack.py",
>  line 178, in _internal_run_query
>     return run_query(sql, show_error, con_args)
>   File 
> "/Users/riyer/Work/MADlib/madlib_builds/build_debug/src/bin/../madpack/madpack.py",
>  line 143, in run_query
>     raise Exception
> Exception
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to