Endian Knowledge Base
Search:     Advanced search
Browse by category:

Smart fails with a traceback and exception StopIteration on EFW 2.1

Add comment
Views: 1196
Votes: 0
Comments: 0
Posted: 05 Dec, 2008
by: Pitschl L.
Updated: 05 Dec, 2008
by: Pitschl L.
Smart PM might fail with the following traceback on a Endian Firewall 2.1.x

root@firewall:~ # smart upgrade
Loading cache...
Updating cache...               ######################################## [100%]
 
Computing transaction...
 
Upgrading packages (2):
  clamav-0.94.1-1.endian4@i586           havp-0.89-2.endian8@i586
 
Traceback (most recent call last):
  File "/usr/bin/smart", line 194, in ?
    main(sys.argv[1:])
  File "/usr/bin/smart", line 167, in main
    exitcode = iface.run(opts.command, opts.argv)
  File "/usr/lib/python2.4/site-packages/smart/interface.py", line 53, in run
    result = _command.main(self._ctrl, opts)
  File "/usr/lib/python2.4/site-packages/smart/commands/upgrade.py", line 198, in main
    ctrl.commitTransaction(trans, confirm=confirm)
  File "/usr/lib/python2.4/site-packages/smart/control.py", line 505, in commitTransaction
    return self.commitChangeSet(trans.getChangeSet(), caching, confirm)
  File "/usr/lib/python2.4/site-packages/smart/control.py", line 508, in commitChangeSet
    if confirm and not iface.confirmChangeSet(changeset):
  File "/usr/lib/python2.4/site-packages/smart/interfaces/text/interface.py", line 107, in confirmChangeSet
    return self.showChangeSet(changeset, confirm=True)
  File "/usr/lib/python2.4/site-packages/smart/interfaces/text/interface.py", line 223, in showChangeSet
    size = report.getInstallSize() - report.getRemoveSize()
  File "/usr/lib/python2.4/site-packages/smart/report.py", line 200, in getRemoveSize
    size = info.getInstalledSize()
  File "/usr/lib/python2.4/site-packages/smart/backends/rpm/header.py", line 87, in getInstalledSize
    return self._h[rpm.RPMTAG_SIZE]
  File "/usr/lib/python2.4/site-packages/smart/backends/rpm/header.py", line 58, in __get__
    obj._h = obj._loader.getHeader(obj._package)
  File "/usr/lib/python2.4/site-packages/smart/backends/rpm/header.py", line 581, in getHeader
    return mi.next()
StopIteration

If the error occurs smart has to be downloaded and reinstalled manually. After that it will
work again as supposed.

Execute the following commands on your firewall to fix the problem:

root@firewall:~ # smart download --url smartpm
Loading cache...
Updating cache...               ######################################## [100%]

http://XXXXXXXXXXXXXXX:xxx@repository.endian.it/packages/efw2.2/efw2.2-base/smartpm-1.1-1.endian6.i586.rpm
root@firewall:~ # curl -O http://XXXXXXXXXXXXXXX:xxx@repository.endian.it/packages/efw2.2/efw2.2-base/smartpm-1.1-1.endian6.i586.rpm
root@firewall:~ # rpm --force -Uhv smartpm-1.1-1.endian6.i586.rpm

Easy as cake, that is!
Others in this Category
document My /var partition is full, what now?
document My SMTP proxy stops processing emails. No Emails will be send/received anymore.
document Greylisting does not work anymore?
document I have constantly high outgoing traffic. Do i have a worm?
document I lost my root password!! What now?
document How to replace a failed hard disk from a raid
document Why is whitelist not working with http proxy authentication / contentfilter / antivirus?



RSS