[ 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)