Sun System Handbook - ISO 3.4 June 2011 Internal/Partner Edition | |||
|
|
Solution Type Problem Resolution Sure Solution 1009128.1 : Solaris [TM] 9 on Sun Fire [TM] v880: prtdiag crashes with a segmentation fault after installing libpsvc patch 113574-08
PreviouslyPublishedAs 212630 Symptoms After installing patch# 113574-08, prtdiag crashes with a segmentation fault. # prtdiag Segmentation Fault Resolution Backout patch# 113574-08. or Install patch# 113447-04 or newer. As of March 22th, 2004, this patch is not yet officially released. When released, 113447-04 SunOS [TM] 5.9: libprtdiag_psr patch, known as an oem_merge or consolidation patch, will obsolete 113574-07, and like patches for several VSP hardware platforms. Relief/Workaround Backout patch# 113574-08. Additional Information The root cause of this problem is in mis-matches of the data structure which are used in the libraries, /usr/platform/sun4u/lib/libprtdiag.so.1 and /usr/platform/SUNW,Sun-Fire-880/lib/libprtdiag_psr.so.1. (Bug# 5016636) Product Sun Fire V880 Server Solaris 9 Operating System Internal Comments Refer to bug# 5016636 report. Tha patch (113574-08) uses the following modified "prop" structure: | typedef struct prop Prop; | struct prop { | Prop *next; | dynOppbuf name; ^^^^^^^^^^^^^^^ | dynOppbuf value; ^^^^^^^^^^^^^^^ | int size; /* size of data in bytes */ | }; | typedef struct dynoppbuf dynOppbuf; | struct dynoppbuf { | struct dynopenpromio opp; ^^^^^^^^^^^^^^^^^^^^^^^^ | char *val_ptr; <<< ^^^^^^^^^^^^^^ | }; | #define OPROM_NODE_SIZE 5 | struct dynopenpromio { | uint_t oprom_size; | union { | char *b; | int i[OPROM_NODE_SIZE]; | } opio_u; | uint_t holds_array; | }; So, the offset of "prop->name.val_ptr" is 4(Prop *name) + sizeof(struct dynopenpromio) = 0x4 + 0x1c = 0x20 However, the current OFFICIAL patch# 113447-03 (including /usr/platform/sun4u/lib/libprtdiag.so.1) and old patch (113574-03) uses old "prop" structure. | typedef struct prop Prop; | struct prop { | Prop *next; | Oppbuf name; ^^^^^^^^^^^ | Oppbuf value; ^^^^^^^^^^^^^ | int size; /* size of data in bytes */ | }; OppBuf is not "structure" but "union"!! | #define MAXPROPSIZE 128 | #define MAXVALSIZE (4096 - MAXPROPSIZE - sizeof (uint_t)) | #define BUFSIZE (MAXPROPSIZE + MAXVALSIZE + sizeof (uint_t)) | typedef union { | char buf[BUFSIZE]; | struct openpromio opp; | void *val_ptr; <<<< ^^^^^^^^^^^^^^^^^ | } Oppbuf; So, the offset of "prop->name.val_ptr" is 4(Prop *name) = 0x4 This structure mis-match caused this problem. Patch# 113574-08 will be removed from SunSolve DB. prtdiag, 113574-08 Previously Published As 74897 Change History Date: 2004-03-24 User Name: c5913 Action: Approved Comment: Added trademarks, rearranged the title, and corrected a couple minor typos. Version: 0 Date: 2004-03-24 User Name: c5913 Action: Accepted Comment: Version: 0 Date: 2004-03-24 User Name: 27596 Action: Add Comment Comment: Please Hold off on Final Review. My colleagues and I discussed this article this morning and we may need to make some chnages/additions. I have emailed the details to the article's author. Please don't put it back into Tech review again or we in VSP PTS may loose control of this article (some one in CCC Hw Support may miss this Comment and move the article back to Final Review). Do whatever you think best, move it back to the Author (preferred) or to my queue. Thanks, Don Plako x21371. Will be in ~ 1PM EST March 24 (today) Version: 0 Date: 2004-03-22 User Name: 27596 Action: Approved Comment: I HAVE REVIEWED THE ARTICLE AND MADE A FEW SMALL ENHANCEMENTS AND SOME GRAMMATICAL CHANGES. TECHNICALLY THE ARTICLE IS SOLIDD. REGARDS, Don Palko --------- Product Technical Support Engineer Volume Server Products (VSP) Product Technical Support (PTS) Sun Support Services Sun Microsystems, Inc, Burlington, Ma. Primary # 781-442-1371 (x21371) Cell Phone: 508-523-8701 Email: donald.palko@sun.com Version: 0 Date: 2004-03-22 User Name: 27596 Action: Accepted Comment: Version: 0 Date: 2004-03-21 User Name: 31705 Action: Approved Comment: Please review this SRDB. Version: 0 Date: 2004-03-21 User Name: 31705 Action: Created Comment: Version: 0 Product_uuid 29726712-0a18-11d6-8636-c7e996b581dc|Sun Fire V880 Server 4f82caac-36f3-11d6-866b-85f428ef944e|Solaris 9 Operating System Attachments This solution has no attachment |
||||||||||||
|