Confusing message after md5 check failure: 'NoneType' object has no attribute 'get_info'

Bug #989991 reported by bcbc
28
This bug affects 6 people
Affects Status Importance Assigned to Milestone
Wubi
New
Undecided
Unassigned

Bug Description

Wubi fails with this message after a failed md5 check on the ISO. See log file from here: http://ubuntuforums.org/showthread.php?t=1966720

04-27 19:05 DEBUG TaskList: New task get_file_md5
04-27 19:05 DEBUG TaskList: #### Running get_file_md5...
04-27 19:05 DEBUG TaskList: #### Finished get_file_md5
04-27 19:05 ERROR CommonBackend: Invalid md5 for ISO K:\ubuntu\install\installation.iso (d791352694374f1c478779f7f4447a3f != 866bdfa347b5425b18fdafe719a956df)
None
04-27 19:05 DEBUG TaskList: ### Finished check_iso
04-27 19:05 ERROR TaskList: 'NoneType' object has no attribute 'get_info'
Traceback (most recent call last):
File "\lib\wubi\backends\common\tasklist.py", line 197, in __call__
File "\lib\wubi\backends\common\backend.py", line 595, in get_iso
File "\lib\wubi\backends\common\backend.py", line 564, in use_cd
AttributeError: 'NoneType' object has no attribute 'get_info'
04-27 19:05 DEBUG TaskList: # Cancelling tasklist
04-27 19:05 DEBUG TaskList: # Finished tasklist
04-27 19:05 ERROR root: 'NoneType' object has no attribute 'get_info'
Traceback (most recent call last):
File "\lib\wubi\application.py", line 58, in run
File "\lib\wubi\application.py", line 132, in select_task
File "\lib\wubi\application.py", line 158, in run_installer
File "\lib\wubi\backends\common\tasklist.py", line 197, in __call__
File "\lib\wubi\backends\common\backend.py", line 595, in get_iso
File "\lib\wubi\backends\common\backend.py", line 564, in use_cd
AttributeError: 'NoneType' object has no attribute 'get_info'

Tags: precise
Revision history for this message
id_ima (id-ima) wrote :

The same happened to me. Base system: Win7 (64bit) Home Edition. Second system: Ubuntu 12.04 (x86) from DVD image. Use wubi.exe from web site http://releases.ubuntu.com/12.04/wubi.exe.

Tail of the wubi-12.04-rev266.log file looks like this:
...
04-29 19:57 DEBUG CommonBackend: metalink md5sums:
1e2a0b0f07bc43ab5924767a9cc03e82 ubuntu-12.04-alternate-amd64.metalink
4413660abc989dbbfe6e4abedc9a3ec1 ubuntu-12.04-alternate-i386.metalink
c29be6d58c1581d9cd679aca25db77d1 ubuntu-12.04-desktop-amd64.metalink
c7a6b99206703cfe37f1da5af1d28e3a ubuntu-12.04-desktop-i386.metalink
4e44ca9bc7ee8ab54ff9565a5437bdc2 ubuntu-12.04-server-amd64.metalink
c9cfc1dd8c65099d929189eedc157f3c ubuntu-12.04-server-i386.metalink

04-29 19:57 DEBUG TaskList: #### Finished get_metalink
04-29 19:57 DEBUG TaskList: New task get_file_md5
04-29 19:57 DEBUG TaskList: #### Running get_file_md5...
04-29 20:05 DEBUG TaskList: #### Finished get_file_md5
04-29 20:05 ERROR CommonBackend: Invalid md5 for ISO C:\ubuntu\install\installation.iso (d791352694374f1c478779f7f4447a3f != f0115a9414f578ad991dd87a99aa5c86)
None
04-29 20:05 DEBUG TaskList: ### Finished check_iso
04-29 20:05 ERROR TaskList: 'NoneType' object has no attribute 'get_info'
Traceback (most recent call last):
  File "\lib\wubi\backends\common\tasklist.py", line 197, in __call__
  File "\lib\wubi\backends\common\backend.py", line 595, in get_iso
  File "\lib\wubi\backends\common\backend.py", line 564, in use_cd
AttributeError: 'NoneType' object has no attribute 'get_info'
04-29 20:05 DEBUG TaskList: # Cancelling tasklist
04-29 20:05 DEBUG TaskList: # Finished tasklist
04-29 20:05 ERROR root: 'NoneType' object has no attribute 'get_info'
Traceback (most recent call last):
  File "\lib\wubi\application.py", line 58, in run
  File "\lib\wubi\application.py", line 132, in select_task
  File "\lib\wubi\application.py", line 158, in run_installer
  File "\lib\wubi\backends\common\tasklist.py", line 197, in __call__
  File "\lib\wubi\backends\common\backend.py", line 595, in get_iso
  File "\lib\wubi\backends\common\backend.py", line 564, in use_cd
AttributeError: 'NoneType' object has no attribute 'get_info'
<END OF FILE>

I've checked the downloaded ISO image. The result is:

51c645b87c797915ce5de4e0a72ebae24ef66628 *ubuntu-12.04-dvd-i386.iso

which matches with http://releases.ubuntu.com/12.04/SHA1SUMS

Revision history for this message
Hamlet (mhamlet1995) wrote :

You can install Ubuntu from CD. Disconnect from the internet and run WUBI.
Or you can run it from command line: D:\OS\wubi.exe --skipmd5check

Revision history for this message
id_ima (id-ima) wrote :

Thanx. Successfully installed ubuntu12.04 with option --skipmd5check

Revision history for this message
bcbc (bcbc) wrote :

The md5check is for a good reason. Wubi isn't supposed to install from DVD which explains why that failed, but in general if the md5check fails it means your ISO is bad, so bypassing the check will lead to issues during the 2nd phase install.

Revision history for this message
bcbc (bcbc) wrote :

Analysis on this bug:
There was a patch to disable the use of a CD when wubi.exe was run standalone: http://bazaar.launchpad.net/~ubuntu-installer/wubi/trunk/revision/265

Now instead of 'find_any_cd' passing back the path and distro it passes back 'None' and 'None'. However, there is another method that is called that looks for the CD 'find_cd' (why this action needs to be performed twice I haven't determined). And this method does not pass back or set the distro object. So, the net effect is that Wubi will still use the CD if it finds it... but if there is something wrong with it, it will then fail with this Nonetype object has no attribute 'getinfo'.

I started writing a patch, but haven't had time to test it or confirm my analysis. I just wanted to note what I've found here, so that it's documented.

Revision history for this message
bcbc (bcbc) wrote :
Download full text (4.3 KiB)

Ran a test with and without using the patch.

Normal rev266:
----------------
05-22 20:20 INFO Distro: Found a valid CD for Edubuntu: D:\ <===========THIS IS IGNORED (find_any_cd)
05-22 20:20 INFO root: Running the installer...
05-22 20:20 DEBUG WindowsFrontend: __init__...
05-22 20:20 DEBUG WindowsFrontend: on_init...
05-22 20:20 INFO WinuiPage: appname=wubi, localedir=C:\DOCUME~1\bcbc\LOCALS~1\Temp\pyl45.tmp\translations, languages=['en_CA', 'en']
05-22 20:20 INFO WinuiPage: appname=wubi, localedir=C:\DOCUME~1\bcbc\LOCALS~1\Temp\pyl45.tmp\translations, languages=['en_CA', 'en']
05-22 20:21 DEBUG WinuiInstallationPage: target_drive=C:, installation_size=12000MB, distro_name=Edubuntu, language=en_US, locale=en_US.UTF-8, username=bcbc
05-22 20:21 INFO root: Received settings
05-22 20:21 DEBUG CommonBackend: Searching for local CD
05-22 20:21 DEBUG Distro: checking whether C:\DOCUME~1\bcbc\LOCALS~1\Temp\pyl45.tmp is a valid Edubuntu CD
05-22 20:21 DEBUG Distro: does not contain C:\DOCUME~1\bcbc\LOCALS~1\Temp\pyl45.tmp\casper\filesystem.squashfs
05-22 20:21 DEBUG Distro: checking whether D:\ is a valid Edubuntu CD
05-22 20:21 INFO Distro: Found a valid CD for Edubuntu: D:\ <========THIS IS NOT IGNORED (find_cd)
...
05-22 20:28 DEBUG TaskList: #### Finished get_metalink
05-22 20:28 DEBUG TaskList: New task get_file_md5
05-22 20:28 DEBUG TaskList: #### Running get_file_md5...
05-22 20:30 DEBUG TaskList: #### Finished get_file_md5
05-22 20:30 ERROR CommonBackend: Invalid md5 for ISO C:\ubuntu\install\installation.iso (480cee0a7174ea2794c146df8174b14c != 422426bcb782be7f974612b5e85fc289)
None
05-22 20:30 DEBUG TaskList: ### Finished check_iso
05-22 20:30 ERROR TaskList: 'NoneType' object has no attribute 'get_info'
Traceback (most recent call last):
  File "\lib\wubi\backends\common\tasklist.py", line 197, in __call__
  File "\lib\wubi\backends\common\backend.py", line 595, in get_iso
  File "\lib\wubi\backends\common\backend.py", line 564, in use_cd
AttributeError: 'NoneType' object has no attribute 'get_info'
05-22 20:30 DEBUG TaskList: # Cancelling tasklist
05-22 20:30 DEBUG TaskList: # Finished tasklist
05-22 20:30 ERROR root: 'NoneType' object has no attribute 'get_info'
Traceback (most recent call last):
  File "\lib\wubi\application.py", line 58, in run
  File "\lib\wubi\application.py", line 132, in select_task
  File "\lib\wubi\application.py", line 158, in run_installer
  File "\lib\wubi\backends\common\tasklist.py", line 197, in __call__
  File "\lib\wubi\backends\common\backend.py", line 595, in get_iso
  File "\lib\wubi\backends\common\backend.py", line 564, in use_cd
AttributeError: 'NoneType' object has no attribute 'get_info'

With the patch:
-----------------
05-22 20:14 INFO Distro: Found a valid CD for Edubuntu: D:\ <=========THIS IS IGNORED
05-22 20:14 INFO root: Running the installer...
05-22 20:14 INFO WinuiPage: appname=wubi, localedir=C:\DOCUME~1\bcbc\LOCALS~1\Temp\pyl39.tmp\translations, languages=['en_CA', 'en']
05-22 20:14 INFO WinuiPage: appname=wubi, localedir=C:\DOCUME~1\bcbc\LOCALS~1\Temp\pyl39.tmp\translations, languages=['en_CA', 'en']
05-22 20:15 DEBUG WinuiInstallat...

Read more...

Revision history for this message
bcbc (bcbc) wrote :

This patch doesn't answer the question why 'find_cd' gets called after 'find_any_cd', but applies the same logic from 'find_any_cd' to exclude the CD/DVD when the path doesn't match that of wubi.exe. I've tested it with an Edubuntu DVD with a bad md5sum in the drive, as well as the bad ISO locally. No errors - it ignores the bad DVD/ISO and proceeds to download as shown in the above logs.

Revision history for this message
bcbc (bcbc) wrote :

PS I think the changelog is missing a line, but since this could potentially be a mid-release patch I wasn't entirely sure and so I left it as is.

Revision history for this message
G.Ziel (g-ziel) wrote :

Hamlet (mhamlet1995) wrote on 2012-04-29: you can run it from command line: D:\OS\wubi.exe --skipmd5check.

This does definitely not work, when I rebooted the computer, grub appeared on the screen und it was possible to choose either windows 7 or ubuntu. I started ubuntu and a little window opened : "The installer encountered an unrecoverable error and will now reboot".
So I figure it is a bad iso and the md5sum is not correct or is it a bug?

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.