[ 
https://issues.apache.org/jira/browse/COUCHDB-2051?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Benoit Chesneau updated COUCHDB-2051:
-------------------------------------

    Description: 
When you try to reopen a deleted db with {{couch_db:reopen/1}}, you get an exit 
exception instead of a not_found error:

{code}
(couchdb@127.0.0.1)1> {ok, Db} = couch_db:open(<<"testdb">>, []).
{ok,{db,<0.215.0>,<0.216.0>,nil,<<"1391677910640185">>,
        <0.217.0>,<0.213.0>,<0.219.0>,
        {db_header,6,0,0,nil,nil,nil,0,nil,nil,1000},
        0,
        {btree,<0.213.0>,nil,#Fun<couch_db_updater.10.75275056>,
               #Fun<couch_db_updater.11.75275056>,
               #Fun<couch_btree.5.15886126>,
               #Fun<couch_db_updater.12.75275056>,snappy},
        {btree,<0.213.0>,nil,#Fun<couch_db_updater.13.75275056>,
               #Fun<couch_db_updater.14.75275056>,
               #Fun<couch_btree.5.15886126>,
               #Fun<couch_db_updater.15.75275056>,snappy},
        {btree,<0.213.0>,nil,#Fun<couch_btree.3.15886126>,
               #Fun<couch_btree.4.15886126>,#Fun<couch_btree.5.15886126>,
               nil,snappy},
        0,<<"testdb">>,"./data/testdb.couch",[],[],nil,
        {user_ctx,null,[],undefined},
        nil,1000,
        [before_header,after_header,on_file_open],
        [create,{user_ctx,...}],
        snappy,nil,nil}}
(couchdb@127.0.0.1)2> [info] [<0.140.0>] 127.0.0.1 - - GET 
/_utils/dialog/_delete_database.html 200
[info] [<0.140.0>] 127.0.0.1 - - DELETE /testdb/ 200
[info] [<0.140.0>] 127.0.0.1 - - GET /_utils/index.html 200
[info] [<0.140.0>] 127.0.0.1 - - GET /_utils/_sidebar.html 200
[info] [<0.140.0>] 127.0.0.1 - - GET /_all_dbs 200
[info] [<0.140.0>] 127.0.0.1 - - GET /_session 200
[info] [<0.138.0>] 127.0.0.1 - - GET / 200
[info] [<0.138.0>] 127.0.0.1 - - GET /_replicator/ 200
[info] [<0.140.0>] 127.0.0.1 - - GET /_users/ 200

(couchdb@127.0.0.1)2> {ok, Db1} = couch_db:reopen(Db).             
** exception exit: {noproc,{gen_server,call,[<0.215.0>,get_db,infinity]}}
     in function  gen_server:call/3 (gen_server.erl, line 188)
     in call from couch_db:reopen/1 (src/couch_db.erl, line 94)

{code}

  was:
When you try to reopen a deleted db with {{couch_db:reopen/1}}, you get an exit 
exception instead of a not_found error:

{{code}}
(couchdb@127.0.0.1)1> {ok, Db} = couch_db:open(<<"testdb">>, []).
{ok,{db,<0.215.0>,<0.216.0>,nil,<<"1391677910640185">>,
        <0.217.0>,<0.213.0>,<0.219.0>,
        {db_header,6,0,0,nil,nil,nil,0,nil,nil,1000},
        0,
        {btree,<0.213.0>,nil,#Fun<couch_db_updater.10.75275056>,
               #Fun<couch_db_updater.11.75275056>,
               #Fun<couch_btree.5.15886126>,
               #Fun<couch_db_updater.12.75275056>,snappy},
        {btree,<0.213.0>,nil,#Fun<couch_db_updater.13.75275056>,
               #Fun<couch_db_updater.14.75275056>,
               #Fun<couch_btree.5.15886126>,
               #Fun<couch_db_updater.15.75275056>,snappy},
        {btree,<0.213.0>,nil,#Fun<couch_btree.3.15886126>,
               #Fun<couch_btree.4.15886126>,#Fun<couch_btree.5.15886126>,
               nil,snappy},
        0,<<"testdb">>,"./data/testdb.couch",[],[],nil,
        {user_ctx,null,[],undefined},
        nil,1000,
        [before_header,after_header,on_file_open],
        [create,{user_ctx,...}],
        snappy,nil,nil}}
(couchdb@127.0.0.1)2> [info] [<0.140.0>] 127.0.0.1 - - GET 
/_utils/dialog/_delete_database.html 200
[info] [<0.140.0>] 127.0.0.1 - - DELETE /testdb/ 200
[info] [<0.140.0>] 127.0.0.1 - - GET /_utils/index.html 200
[info] [<0.140.0>] 127.0.0.1 - - GET /_utils/_sidebar.html 200
[info] [<0.140.0>] 127.0.0.1 - - GET /_all_dbs 200
[info] [<0.140.0>] 127.0.0.1 - - GET /_session 200
[info] [<0.138.0>] 127.0.0.1 - - GET / 200
[info] [<0.138.0>] 127.0.0.1 - - GET /_replicator/ 200
[info] [<0.140.0>] 127.0.0.1 - - GET /_users/ 200

(couchdb@127.0.0.1)2> {ok, Db1} = couch_db:reopen(Db).             
** exception exit: {noproc,{gen_server,call,[<0.215.0>,get_db,infinity]}}
     in function  gen_server:call/3 (gen_server.erl, line 188)
     in call from couch_db:reopen/1 (src/couch_db.erl, line 94)

{{code}}


> couch_db:reopen_db/1 should return a not_found error when the db has been 
> deleted
> ---------------------------------------------------------------------------------
>
>                 Key: COUCHDB-2051
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-2051
>             Project: CouchDB
>          Issue Type: Improvement
>      Security Level: public(Regular issues) 
>          Components: Database Core
>            Reporter: Benoit Chesneau
>
> When you try to reopen a deleted db with {{couch_db:reopen/1}}, you get an 
> exit exception instead of a not_found error:
> {code}
> (couchdb@127.0.0.1)1> {ok, Db} = couch_db:open(<<"testdb">>, []).
> {ok,{db,<0.215.0>,<0.216.0>,nil,<<"1391677910640185">>,
>         <0.217.0>,<0.213.0>,<0.219.0>,
>         {db_header,6,0,0,nil,nil,nil,0,nil,nil,1000},
>         0,
>         {btree,<0.213.0>,nil,#Fun<couch_db_updater.10.75275056>,
>                #Fun<couch_db_updater.11.75275056>,
>                #Fun<couch_btree.5.15886126>,
>                #Fun<couch_db_updater.12.75275056>,snappy},
>         {btree,<0.213.0>,nil,#Fun<couch_db_updater.13.75275056>,
>                #Fun<couch_db_updater.14.75275056>,
>                #Fun<couch_btree.5.15886126>,
>                #Fun<couch_db_updater.15.75275056>,snappy},
>         {btree,<0.213.0>,nil,#Fun<couch_btree.3.15886126>,
>                #Fun<couch_btree.4.15886126>,#Fun<couch_btree.5.15886126>,
>                nil,snappy},
>         0,<<"testdb">>,"./data/testdb.couch",[],[],nil,
>         {user_ctx,null,[],undefined},
>         nil,1000,
>         [before_header,after_header,on_file_open],
>         [create,{user_ctx,...}],
>         snappy,nil,nil}}
> (couchdb@127.0.0.1)2> [info] [<0.140.0>] 127.0.0.1 - - GET 
> /_utils/dialog/_delete_database.html 200
> [info] [<0.140.0>] 127.0.0.1 - - DELETE /testdb/ 200
> [info] [<0.140.0>] 127.0.0.1 - - GET /_utils/index.html 200
> [info] [<0.140.0>] 127.0.0.1 - - GET /_utils/_sidebar.html 200
> [info] [<0.140.0>] 127.0.0.1 - - GET /_all_dbs 200
> [info] [<0.140.0>] 127.0.0.1 - - GET /_session 200
> [info] [<0.138.0>] 127.0.0.1 - - GET / 200
> [info] [<0.138.0>] 127.0.0.1 - - GET /_replicator/ 200
> [info] [<0.140.0>] 127.0.0.1 - - GET /_users/ 200
> (couchdb@127.0.0.1)2> {ok, Db1} = couch_db:reopen(Db).             
> ** exception exit: {noproc,{gen_server,call,[<0.215.0>,get_db,infinity]}}
>      in function  gen_server:call/3 (gen_server.erl, line 188)
>      in call from couch_db:reopen/1 (src/couch_db.erl, line 94)
> {code}



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to