Page 1 of 1

AttributeError on client machine

Published: July 29, 2016 - 6:52 PM
by Floflobel
Good morning,

The WAPT systems present locally on the workstations are starting to make mistakes.
When I try to "Upgrade the system" the page displays in white with a "Server Error" message.

The error in the task list is as follows:

Code: Select all

AttributeError: type object 'exceptions.Exception' has no attribute 'create'
I tried looking at the server side (Debian) but everything is working. I can access the repository from the workstations, I can ping it.

I tried using the command prompt by running "wapt-get update" then "wapt-get upgrade" and it displays this error:

Code: Select all

Exception at 005755E5: EIdHTTPProtocolException:
HTTP/1.1 500 Server Error.
The issue is occurring on several machines (70/1500), the problem is starting to become critical as I can no longer perform any updates.

Thank you,

Re: AttributeError on client machine

Published: August 25, 2016 - 12:16
by Floflobel
I'm adding the logs in the hope that someone can figure out where the problem is coming from.
Almost my entire fleet can no longer receive updates.
I attempted a complete reinstallation of WAPT on the client machine manually but I still get the same error message.

Code: Select all

2016-08-25 11:54:47,973 ERROR Traceback (most recent call last):

  File "C:\wapt\lib\site-packages\rocket\worker.py", line 170, in run
    self.run_app(conn)

  File "C:\wapt\lib\site-packages\rocket\methods\wsgi.py", line 244, in run_app
    output = self.app(environ, self.start_response)

  File "C:\wapt\lib\site-packages\flask\app.py", line 1836, in __call__
    return self.wsgi_app(environ, start_response)

  File "C:\wapt\lib\site-packages\flask\app.py", line 1820, in wsgi_app
    response = self.make_response(self.handle_exception(e))

  File "C:\wapt\lib\site-packages\flask\app.py", line 1403, in handle_exception
    reraise(exc_type, exc_value, tb)

  File "C:\wapt\lib\site-packages\flask\app.py", line 1817, in wsgi_app
    response = self.full_dispatch_request()

  File "C:\wapt\lib\site-packages\flask\app.py", line 1477, in full_dispatch_request
    rv = self.handle_user_exception(e)

  File "C:\wapt\lib\site-packages\flask\app.py", line 1381, in handle_user_exception
    reraise(exc_type, exc_value, tb)

  File "C:\wapt\lib\site-packages\flask\app.py", line 1475, in full_dispatch_request
    rv = self.dispatch_request()

  File "C:\wapt\lib\site-packages\flask\app.py", line 1461, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)

  File "C:\wapt\waptservice\waptservice.py", line 621, in decorated
    return f(*args, **kwargs)

  File "C:\wapt\waptservice\waptservice.py", line 934, in upgrade
    wapt().update()

  File "C:\wapt\common.py", line 3435, in update
    "upgrades": self.list_upgrade(),

  File "C:\wapt\common.py", line 4042, in list_upgrade
    depends = self.check_depends(result['install']+result['upgrade']+result['additional'])

  File "C:\wapt\common.py", line 3516, in check_depends
    (depends,missing) = self.waptdb.build_depends([p[0] for p in packages])

  File "C:\wapt\common.py", line 1673, in build_depends
    alldepends = dodepends(explored,packages,depth,missing)

  File "C:\wapt\common.py", line 1663, in dodepends
    alldepends.extend(dodepends(explored,available_depends,depth+1,missing))

  File "C:\wapt\common.py", line 1663, in dodepends
    alldepends.extend(dodepends(explored,available_depends,depth+1,missing))

  File "C:\wapt\common.py", line 1663, in dodepends
    alldepends.extend(dodepends(explored,available_depends,depth+1,missing))

  File "C:\wapt\common.py", line 1663, in dodepends
    alldepends.extend(dodepends(explored,available_depends,depth+1,missing))

  File "C:\wapt\common.py", line 1663, in dodepends
    alldepends.extend(dodepends(explored,available_depends,depth+1,missing))

  File "C:\wapt\common.py", line 1663, in dodepends
    alldepends.extend(dodepends(explored,available_depends,depth+1,missing))

  File "C:\wapt\common.py", line 1663, in dodepends
    alldepends.extend(dodepends(explored,available_depends,depth+1,missing))

  File "C:\wapt\common.py", line 1663, in dodepends
    alldepends.extend(dodepends(explored,available_depends,depth+1,missing))

  File "C:\wapt\common.py", line 1663, in dodepends
    alldepends.extend(dodepends(explored,available_depends,depth+1,missing))

  File "C:\wapt\common.py", line 1663, in dodepends
    alldepends.extend(dodepends(explored,available_depends,depth+1,missing))

  File "C:\wapt\common.py", line 1663, in dodepends
    alldepends.extend(dodepends(explored,available_depends,depth+1,missing))

  File "C:\wapt\common.py", line 1663, in dodepends
    alldepends.extend(dodepends(explored,available_depends,depth+1,missing))

  File "C:\wapt\common.py", line 1663, in dodepends
    alldepends.extend(dodepends(explored,available_depends,depth+1,missing))

  File "C:\wapt\common.py", line 1663, in dodepends
    alldepends.extend(dodepends(explored,available_depends,depth+1,missing))

  File "C:\wapt\common.py", line 1663, in dodepends
    alldepends.extend(dodepends(explored,available_depends,depth+1,missing))

  File "C:\wapt\common.py", line 1663, in dodepends
    alldepends.extend(dodepends(explored,available_depends,depth+1,missing))

  File "C:\wapt\common.py", line 1663, in dodepends
    alldepends.extend(dodepends(explored,available_depends,depth+1,missing))

  File "C:\wapt\common.py", line 1663, in dodepends
    alldepends.extend(dodepends(explored,available_depends,depth+1,missing))

  File "C:\wapt\common.py", line 1663, in dodepends
    alldepends.extend(dodepends(explored,available_depends,depth+1,missing))

  File "C:\wapt\common.py", line 1663, in dodepends
    alldepends.extend(dodepends(explored,available_depends,depth+1,missing))

  File "C:\wapt\common.py", line 1663, in dodepends
    alldepends.extend(dodepends(explored,available_depends,depth+1,missing))

  File "C:\wapt\common.py", line 1663, in dodepends
    alldepends.extend(dodepends(explored,available_depends,depth+1,missing))

  File "C:\wapt\common.py", line 1663, in dodepends
    alldepends.extend(dodepends(explored,available_depends,depth+1,missing))

  File "C:\wapt\common.py", line 1663, in dodepends
    alldepends.extend(dodepends(explored,available_depends,depth+1,missing))

  File "C:\wapt\common.py", line 1663, in dodepends
    alldepends.extend(dodepends(explored,available_depends,depth+1,missing))

  File "C:\wapt\common.py", line 1663, in dodepends
    alldepends.extend(dodepends(explored,available_depends,depth+1,missing))

  File "C:\wapt\common.py", line 1663, in dodepends
    alldepends.extend(dodepends(explored,available_depends,depth+1,missing))

  File "C:\wapt\common.py", line 1663, in dodepends
    alldepends.extend(dodepends(explored,available_depends,depth+1,missing))

  File "C:\wapt\common.py", line 1663, in dodepends
    alldepends.extend(dodepends(explored,available_depends,depth+1,missing))

  File "C:\wapt\common.py", line 1663, in dodepends
    alldepends.extend(dodepends(explored,available_depends,depth+1,missing))

  File "C:\wapt\common.py", line 1663, in dodepends
    alldepends.extend(dodepends(explored,available_depends,depth+1,missing))

  File "C:\wapt\common.py", line 1645, in dodepends
    raise Exception.create('Max depth in build dependencies reached, aborting')

AttributeError: type object 'exceptions.Exception' has no attribute 'create'


Re: AttributeError on client machine

Published: August 26, 2016 - 10:16
by Floflobel
I tried restarting the server, but it didn't change anything.
The logs located in /var/log don't give me any more information.

Re: AttributeError on client machine

Published: August 31, 2016 - 12:33
by Floflobel
I tried looking on the git repository and the only link I found is https://github.com/tranquilit/WAPT/blob ... _init__.py.
Unfortunately, I am unable to read this code.

Line 465:

Code: Select all

	def __getattr__(self, attr):
		args=self._prop_map_get_.get(attr)
		if args is None:
			raise AttributeError("'%s' object has no attribute '%s'" % (repr(self), attr))
		return self._ApplyTypes_(*args)

	def __setattr__(self, attr, value):
		if attr in self.__dict__: self.__dict__[attr] = value; return
		try:
			args, defArgs=self._prop_map_put_[attr]
		except KeyError:
			raise AttributeError("'%s' object has no attribute '%s'" % (repr(self), attr))
		self._oleobj_.Invoke(*(args + (value,) + defArgs))
	def _get_good_single_object_(self, obj, obUserName=None, resultCLSID=None):
		return _get_good_single_object_(obj, obUserName, resultCLSID)
	def _get_good_object_(self, obj, obUserName=None, resultCLSID=None):
return _get_good_object_(obj, obUserName, resultCLSID)

Re: AttributeError on client machine

Published: August 31, 2016 - 5:48 PM
by Floflobel
For your information, I just solved the problem.
A group had its own group as a dependency. I simply removed it, and WAPT is working again.
The error explained that there was an infinite loop in the dependencies.