Package home | Report new bug | New search | Development Roadmap Status: Open | Feedback | All | Closed Since Version 1.9.4

Bug #10857 Structures_Graph_Node::getMetadata: Requested key does not exist
Submitted: 2007-04-27 03:22 UTC Modified: 2007-05-09 19:32 UTC
From: berdir Assigned: cellog
Status: Closed Package: PEAR (version 1.5.3)
PHP Version: 5.2.1 OS: Linux
Roadmaps: 1.6.0    
Subscription  


 [2007-04-27 03:22 UTC] berdir (Sascha Grossenbacher)
Description: ------------ I have a quite complex application, which i want to install as pear package. I have created a bundled package with all (most) of the needed dependencies. By the time of the installation, I found out, that I forgot to include 2 needed packages and the installation progress ends with the above message: ----- pear/Auth can optionally use package "pear/File_Passwd" (version >= 1.1.0) pear/Auth can optionally use package "pear/Net_POP3" (version >= 1.3.0) pear/Auth can optionally use package "pear/MDB" pear/Auth can optionally use package "pear/Auth_RADIUS" pear/Auth can optionally use package "pear/Crypt_CHAP" (version >= 1.0.0) pear/Auth can optionally use package "pear/File_SMBPasswd" (version >= 1.0.0) pear/Auth can optionally use package "pecl/vpopmail" (version >= 0.2) pear/Auth can optionally use package "pecl/kadm5" (version >= 0.2.3) pear/Auth can optionally use PHP extension "imap" pear/Auth can optionally use PHP extension "saprfc" pear/Auth can optionally use PHP extension "soap" pear/Log can optionally use PHP extension "sqlite" pear/MDB2_Schema can optionally use package "pear/XML_DTD" pear/DB_DataObject can optionally use package "pear/Validate" (version >= 0.1.1) pear/DB_DataObject requires package "pear/Date" (version >= 1.4.3) pear/KonfigGen requires package "pear/DB_DataObject" (recommended version 1.8.5) pear/Text_Diff can optionally use PHP extension "xdiff" pear/Calendar can optionally use package "pear/Date" pear/HTML_Safe requires package "pear/XML_HTMLSax3" (version >= 3.0.0RC1) pear/Structures_DataGrid_DataSource_DataObject requires package "pear/DB_DataObject" (version >= 1.8.4) pear/Structures_DataGrid_DataSource_DataObject can optionally use package "pear/DB_DataObject_FormBuilder" (version >= 1.0.0RC4) pear/File_Archive requires package "pear/MIME_Type" pear/File_Archive can optionally use package "pear/Mail_Mime" pear/File_Archive can optionally use package "pear/Mail" pear/File_PDF can optionally use package "pear/HTTP_Download" Structures_Graph_Node::getMetadata: Requested key does not exist ---- I found out that Structures_Graph_Node is called with the key 'string(22) "topological-sort-level"'. This is the backtrace: #0 : /usr/share/php/Structures/Graph/Manipulator/TopologicalSorter.php at line 143 #1 : /usr/share/php/PEAR/Downloader.php at line 1313 #2 : /usr/share/php/PEAR/Command/Install.php at line 649 #3 : /usr/share/php/PEAR/Command/Common.php at line 285 #4 : /usr/share/php/pearcmd.php at line 312

Comments

 [2007-04-27 03:42 UTC] berdir (Sascha Grossenbacher)
Update: The error has nothing to do with the missing required packages, now are alle needed packages in the bundle and the error is still there. I also tried it with PEAR-1.5.2, same error here..
 [2007-04-27 08:56 UTC] cellog (Greg Beaver)
I need a link to the actual application you are experiencing this error in, in order to debug it.
 [2007-04-27 09:18 UTC] berdir (Sascha Grossenbacher)
I found the problem, A package was twice in the bundle (Structures_DataGrid_Renderer_XLS) and PEAR wanted to install it twice (with different versions). But when they got sorted, it seems to me that Structures_Graph merged the two entries into one. So the same Structures_Graph_Node was looped twice and on the second loop, it tried to access a already deleted metadata. So, the error was in my script, but perhabs PEAR could have a simple check if a package is already on the "to install"-list and override (if the version is newer) oder ignore it in that case. Perhabs together with a WARNING message...
 [2007-04-27 09:24 UTC] berdir (Sascha Grossenbacher)
Again an update :) Simple example: sudo pear upgrade -f Date-1.4.6 Date-1.4.7 downloading Date-1.4.6.tgz ... Starting to download Date-1.4.6.tgz (53,535 bytes) .............done: 53,535 bytes downloading Date-1.4.7.tgz ... Starting to download Date-1.4.7.tgz (55,754 bytes) ...done: 55,754 bytes Structures_Graph_Node::getMetadata: Requested key does not exist
 [2007-04-28 12:49 UTC] cellog (Greg Beaver)
excellent sleuthing. Thanks for taking the time, you have no idea how much easier it will be to fix this bug with the information you've provided :)
 [2007-05-09 19:32 UTC] cellog (Greg Beaver)
This bug has been fixed in CVS. If this was a documentation problem, the fix will appear on pear.php.net by the end of next Sunday (CET). If this was a problem with the pear.php.net website, the change should be live shortly. Otherwise, the fix will appear in the package's next release. Thank you for the report and for helping us make PEAR better.