Bug 151454 - YOU-update impossible because of corrupt YaST-database
Summary: YOU-update impossible because of corrupt YaST-database
Status: RESOLVED INVALID
Alias: None
Product: SUSE LINUX 10.0
Classification: openSUSE
Component: YOU (show other bugs)
Version: Final
Hardware: Other Other
: P5 - None : Normal
Target Milestone: ---
Assignee: E-mail List
QA Contact: Klaus Kämpf
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-02-16 11:02 UTC by Björn Voigt
Modified: 2006-02-24 14:54 UTC (History)
1 user (show)

See Also:
Found By: Other
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments
YaST 2 log file with messages from "online_update" (YOU) (13.35 KB, text/plain)
2006-02-16 11:04 UTC, Björn Voigt
Details
Second test: /var/lib/YaST2/vendor_update file (21 bytes, text/plain)
2006-02-17 10:00 UTC, Björn Voigt
Details
Second test: /var/lib/YaST2/you/youservers file (678 bytes, text/plain)
2006-02-17 10:01 UTC, Björn Voigt
Details
Second test: .y2log file (13.35 KB, text/plain)
2006-02-17 10:02 UTC, Björn Voigt
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Björn Voigt 2006-02-16 11:02:00 UTC
I have a running SuSE Linux Professional 10.0 system. YaST is working without problems with one exception. YOU can not be used:

$ online_update -k -s -V
Types of patches to be installed: security recommended patchlevel
Error while requesting servers: ERROR(You:Error getting youservers file.)

The .y2log file is attached. 

I think, the YOU problem is a result of a update from 9.3 to 10.0 with YaST system update. Because of the YOU problem I repeated the update with booting from the DVD. But this did not help against the YOU-problem. I also removed /var/adm/YaST/ProdDB/ and /var/adm/YaST/InstSrcManager/ and added the installation sources again. Software installation in YaST works, but YOU does not work.

I also tried all matching tips in the SDB. But none helped.

Why does the YaST not repair a corrupt database?
Why does YaST not forbid an system update, if this corrupts the database and YOU will not work afterwards?
Comment 1 Björn Voigt 2006-02-16 11:04:01 UTC
Created attachment 68791 [details]
YaST 2 log file with messages from "online_update" (YOU)

This file contains the messages from online_update -k -s -V.
Comment 2 J. Daniel Schmidt 2006-02-16 18:06:08 UTC
Please have a look at the file "/var/lib/YaST2/vendor_update"
It should contain the following line (and only this line):
/linux/suse/i386-10.0

And the file "/var/lib/YaST2/you/youservers" should contain at least one reachable mirror server.

Please check and report with y2logs.
Comment 3 Björn Voigt 2006-02-17 09:55:20 UTC
The file /var/lib/YaST2/vendor_update contains one line "/linux/suse/i386-10.0" but without a trailing newline ("\n"). 

The file /var/lib/YaST2/you/youservers does not exists. The old attached .y2log file ("YaST 2 log file with messages from online_update (YOU)") is still valid.

I copied a valid youservers file from another PC. I also added a newline to the vendor_update file. After running "online_update -k -s -V" again, the problem still exists. I attached the three current files youservers, vendor_update and .y2log. 
Comment 4 Björn Voigt 2006-02-17 10:00:00 UTC
Created attachment 68978 [details]
Second test: /var/lib/YaST2/vendor_update file
Comment 5 Björn Voigt 2006-02-17 10:01:26 UTC
Created attachment 68979 [details]
Second test: /var/lib/YaST2/you/youservers file
Comment 6 Björn Voigt 2006-02-17 10:02:20 UTC
Created attachment 68980 [details]
Second test: .y2log file
Comment 7 J. Daniel Schmidt 2006-02-17 10:42:00 UTC
The log says: "No products installed"

Please check if the file "/var/adm/YaST/ProdDB/prod_00000001" exists and contains data referencing SUSE Linux 10.0.
Comment 8 Björn Voigt 2006-02-17 11:16:53 UTC
No, the file "/var/adm/YaST/ProdDB/prod_00000001" currently does not exists. I removed it, because I tried several things to fix the YOU-problem. As far as I know, the file existed on the first occurence of the YOU-problem.

How could I restore the file? Why does YOU not give a hint for restoring the file?

Why does YOU check "/var/adm/YaST/ProdDB/prod_00000001" and not /etc/SuSE-release and the installation sources (license issues?)?

I have the original SuSE 10.0 Pro DVD by hand. 
Comment 9 J. Daniel Schmidt 2006-02-17 12:37:32 UTC
/etc/SuSE-release is just one or two strings to identify the system.
The file /var/adm/YaST/ProdDB (Product Database) contains detailled information about all installed products and other data (e.g where to fetch release notes from). And that is what YOU is interested in.

Yes you can restore the file. Have a look at this file
/var/adm/YaST/InstSrcManager/IS_CACHE_0x00000001/DESCRIPTION/description
and check if it refers to SL10.0 then copy it to /var/adm/YaST/ProdDB/prod_00000001


To your question:
"Why does YaST not forbid an system update ...?"
You obviously misused the system _update_ to perform a system _upgrade_. For upgrades please always boot from the new media. With this procedure only we can guarantee a version upgrade.
From SL10.0 on it will no longer be possible to misuse the system update for that.

Thanks for a short answer if this solved your problem.
Comment 10 Björn Voigt 2006-02-17 15:40:39 UTC
Ok, I restored /var/adm/YaST/ProdDB/prod_00000001 from /var/adm/YaST/InstSrcManager/IS_CACHE_0x00000001/DESCRIPTION/description. After that YOU formed an incorrect URL:

$ online_update -k -s -V
Types of patches to be installed: security recommended patchlevel
Server URL: ftp://ftp.uni-erlangen.de/pub/Linux/MIRROR.suse/pub/suse/i386/update/
Server Name: Benutzerdefinierter Pfad
Directory File:
Path 0: ./i386/update/10.0/patches
ERROR(Media:file not found)[HTTP return code: 503 (URL: ftp://ftp.uni-erlangen.de/pub/Linux/MIRROR.suse/pub/suse/i386/update/i386/update/10.0/patches/directory.3)]

After changing the server selection manually with YaST (yast2 online_update), YOU works fine. My problem is solved now. 

Anyway, I think, it would be nice to have an good way to fix such problems (a current SDB article or better an automatic recovery in YaST).

I "misused" the system _update_ to perform a system _upgrade_ on my SuSE 10.0 box because this worked fine for my SuSE 10.1 (Beta) testing system. And I thought, it will also work for my other system. I did not find any problems on my 10.1 box, if YaST system update can complete it's work. 
Comment 11 Christian Boltz 2006-02-17 22:32:25 UTC
Forgotten to reset NEEDINFO? ;-)
Comment 12 Jiří Suchomel 2006-02-24 14:54:10 UTC
System update is not intended to do an upgrade of the system and it may work only by accident. Therefore it is not valid.