0
$\begingroup$

Rosanswers logo

Ok, so I followed the directions for getting the web_interface stack installed and configured to talk to my Lego NXT bot.

The first time I hit the web page (from the same machine running the server) it asks me to set a new admin password. I set it to admin again. At that point I'm taken into the UI and can see some of the status stuff and messages and such.

If I close the browser and try to go into the page again though, using the admin/admin (which is what I set the "new" password to) it spins for a while and then I see the following message on the browser:


A copy of this error report has been submitted to the developers. The details of the error report are below. --> --> odb_Exception

DatabaseError("database is locked(INSERT INTO auth_login (uid,username,time,loginType,browserid,ipaddr) VALUES (1,'admin','1315528565.09',1,NULL,'127.0.0.1'))",) Traceback

A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.

1.

  /opt/ros/diamondback/stacks/web_interface/pyclearsilver/src/pyclearsilver/CSPage.py in start (self=<mod.login.cgibin.signin.SignInPage instance>)
     1. 199 # call page main function!
     2. 200 try:
     3. 201 self.main()
     4. 202 except DisplayDone:
     5. 203 SHOULD_DISPLAY = 0
      * self = <mod.login.cgibin.signin.SignInPage instance>
      * self.main = <bound method SignInPage.main of <mod.login.cgibin.signin.SignInPage instance>>
  /opt/ros/diamondback/stacks/web_interface/pyclearsilver/src/pyclearsilver/CSPage.py in main (self=<mod.login.cgibin.signin.SignInPage instance>)
     1. 157 __call(self.setup)
     2. 158
     3. 159 self.handle_actions()
     4. 160
     5. 161 __call(self.display)
      * self = <mod.login.cgibin.signin.SignInPage instance>
      * self.handle_actions = <bound method SignInPage.handle_actions of <mod.login.cgibin.signin.SignInPage instance>>
  /opt/ros/diamondback/stacks/web_interface/pyclearsilver/src/pyclearsilver/CSPage.py in handle_actions (self=<mod.login.cgibin.signin.SignInPage instance>)
     1. 177 method = getattr(self,method_name)
     2. 178 if method.im_func.func_code.co_argcount == 2:
     3. 179 apply(method,[hdf])
     4. 180 else:
     5. 181 apply(method,[])
      * builtin apply = <built-in function apply>
      * method = <bound method SignInPage.Action_Login of <mod.login.cgibin.signin.SignInPage instance>>
      * hdf = <HDFObjectType object>
  /opt/ros/diamondback/stacks/web_interface/webui/src/webui/mod/login/cgibin/signin.py in Action_Login (self=<mod.login.cgibin.signin.SignInPage instance>, hdf=<HDFObjectType object>)
     1. 134
     2. 135 loginRow.loginType = 1
     3. 136 loginRow.save()
     4. 137
     5. 138 cookieauth.issueLoginCookie(self.ncgi, self.authdb, q_username, userRec.pw_hash, q_persist)
      * loginRow = Row from (auth_login): {'username': u'admin', 'u... 'browserid': None, 'time': 1315528565.0882859}{}
      * loginRow.save = <bound method HdfRow.save of Row from (auth_logi...'browserid': None, 'time': 1315528565.0882859}{}>
  /opt/ros/diamondback/stacks/web_interface/pyclearsilver/src/pyclearsilver/odb.py in save (self=Row from (auth_login): {'username': u'admin', 'u... 'browserid': None, 'time': 1315528565.0882859}{}, cursor=None)
     1. 2251
     2. 2252 if self._should_insert:
     3. 2253 toTable.r_insertRow(self,replace=self._should_replace)
     4. 2254 self._should_insert = 0
     5. 2255 self._should_replace = 0
      * toTable = <auth.db_auth.UserLoginTable instance>
      * toTable.r_insertRow = <bound method UserLoginTable.r_insertRow of <auth.db_auth.UserLoginTable instance>>
      * self = Row from (auth_login): {'username': u'admin', 'u... 'browserid': None, 'time': 1315528565.0882859}{}
      * replace undefined
      * self._should_replace = 0
  /opt/ros/diamondback/stacks/web_interface/pyclearsilver/src/pyclearsilver/odb.py in r_insertRow (self=<auth.db_auth.UserLoginTable instance>, a_row_obj=Row from (auth_login): {'username': u'admin', 'u... 'browserid': None, 'time': 1315528565.0882859}{}, cursor=None, replace=0)
     1. 1693 def r_insertRow(self,a_row_obj, cursor = None,replace=0):
     2. 1694 curs = cursor
     3. 1695 self.__insertRow(a_row_obj, cursor = curs,replace=replace)
     4. 1696
     5. 1697
      * self = <auth.db_auth.UserLoginTable instance>
      * self.__insertRow undefined
      * a_row_obj = Row from (auth_login): {'username': u'admin', 'u... 'browserid': None, 'time': 1315528565.0882859}{}
      * cursor = None
      * curs = None
      * replace = 0
  /opt/ros/diamondback/stacks/web_interface/pyclearsilver/src/pyclearsilver/odb.py in __insertRow (self=<auth.db_auth.UserLoginTable instance>, a_row_obj=Row from (auth_login): {'username': u'admin', 'u... 'browserid': None, 'time': 1315528565.0882859}{}, cursor=<pyclearsilver.odb_sqlite3.Cursor instance>, replace=0)
     1. 1647 if string.find(str(reason), "Duplicate entry") != -1:
     2. 1648 raise eDuplicateKey(reason)
     3. 1649 raise odb_Exception(reason)
     4. 1650
     5. 1651 if self.__replication:
      * global odb_Exception = <class 'pyclearsilver.odb.odb_Exception'>
      * reason = DatabaseError("database is locked(INSERT INTO au...1,'admin','1315528565.09',1,NULL,'127.0.0.1'))",)

odb_Exception

DatabaseError("database is locked(INSERT INTO auth_login (uid,username,time,loginType,browserid,ipaddr) VALUES (1,'admin','1315528565.09',1,NULL,'127.0.0.1'))",)

* args = ()
* message = DatabaseError("database is locked(INSERT INTO au...1,'admin','1315528565.09',1,NULL,'127.0.0.1'))",)

System Details

* Date: Fri, 09 Sep 2011 00:46:14 +0000
* Platform: Linux mkopack-VirtualBox 2.6.35-30-generic #56-Ubuntu SMP Mon Jul 11 20:00:22 UTC 2011 i686
* Python: Python 2.6.6 (/usr/bin/python)

CGI.DocumentRoot = /var/www CGI.GatewayInterface = Python-CGI/1.1 CGI.PathInfo = CGI.PathTranslated = /var/www/login/signin.py CGI.QueryString = password=a02010600030ccdc9cc4b4c987&persist=0&Action.Login=1&request=%2Fwebui%2Fwebui%2F&username=admin CGI.RemoteAddress = 127.0.0.1 CGI.RemotePort = 54474 CGI.RequestMethod = GET CGI.RequestURI = /webui/login/signin.py?password=a02010600030ccdc9cc4b4c987&persist=0&Action.Login=1&request=%2Fwebui%2Fwebui%2F&username=admin CGI.ScriptFilename = /var/www/webui CGI.ScriptName = /webui CGI.ServerAddress = 127.0.0.1 CGI.ServerAdmin = webmaster@localhost CGI.ServerName = 127.0.0.1 CGI.ServerPort = 80 CGI.ServerProtocol = HTTP/1.1 CGI.ServerSoftware = Apache/2.2.16 (Ubuntu) CGI.Today = CGI.Today.sec = 05 CGI.Today.min = 36 CGI.Today.24hour = 17 CGI.Today.hour = 5 CGI.Today.am = 0 CGI.Today.mday = 8 CGI.Today.mon = 9 CGI.Today.year = 2011 CGI.Today.2yr = 11 CGI.Today.wday = 4 CGI.Today.tzoffset = -0700 CGI.Robot = nxt_ros CGI.robot_type = nxt_ros CGI.hostport_prefix = http://127.0.0.1:8068 CGI.ros_bridge_uri = http://127.0.0.1:8068/ros CGI.BaseURI = /webui/ HTTP.Accept = text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8 HTTP.AcceptCharset = ISO-8859-1,utf-8;q=0.7,*;q=0.7 HTTP.AcceptEncoding = gzip,deflate HTTP.AcceptLanguage = en-us,en;q=0.5 HTTP.Host = 127.0.0.1 HTTP.UserAgent = Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.22) Gecko/20110905 Ubuntu/10.10 (maverick) Firefox/3.6.22 HTTP.Referer = http://127.0.0.1/webui/login/signin0.py?q=1&request=%2Fwebui%2F Query.password = a02010600030ccdc9cc4b4c987 Query.persist = 0 Query.Action.Login = 1 Query.request = /webui/webui/ Query.username = admin hdf.loadpaths.1 = /opt/ros/diamondback/stacks/web_interface/webui/src/webui/mod/login/templates hdf.loadpaths.2 = /opt/ros/diamondback/stacks/web_interface/webui/src/webui/mod/webui/templates hdf.loadpaths.3 = /opt/ros/diamondback/stacks/web_interface/webui/src/webui/mod/webui/jslib Config.CompressionEnabled = 1 Config.WhiteSpaceStrip = 1 cgiout.other.Content-Type = Content-Type: text/html cgiout.other.status = status: 200 cgiout.other.connection = connection: close


Originally posted by mkopack on ROS Answers with karma: 171 on 2011-09-13

Post score: 1

$\endgroup$

2 Answers 2

0
$\begingroup$

Rosanswers logo

As the author of that paper, I can try to help figure out what's going on. I've never seen this particular problem before, but given how WebUI is setup on anything that's not a PR2, problems are bound to crop up.

The first thing I'd check is the permissions on the database (IIRC, webui uses sqlite which is just a single file). Make sure the DB is owned by apache, and apache has rw access.

I'm not too optimistic that that's the solution, but I'd give that a try first.


Originally posted by Dan Lazewatsky with karma: 9115 on 2011-09-14

This answer was ACCEPTED on the original site

Post score: 0


Original comments

Comment by Dan Lazewatsky on 2011-09-15:
Here's the project website: http://telepresence.cse.wustl.edu/, and the code lives at http://code.google.com/p/wu-robotics/source/browse/#svn%2Ftrunk%2Fmissouri

Comment by mkopack on 2011-09-15:
Ok, cool. I'll give that a try! Thanks! Is it possible to get access to any of the code you guys developed for that project? If not I understand...

$\endgroup$
0
$\begingroup$

Rosanswers logo

You shouldn't expect this to work, now or ever. Both the web_interface and webui wiki pages say this:

This stack is under development and for internal use only.

And they're not kidding; to my knowledge, it's not even used internally anymore, nor maintained.


Originally posted by Mac with karma: 4119 on 2011-09-14

This answer was NOT ACCEPTED on the original site

Post score: 2

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.