How to do Kernel Patching in Solaris 10?

How to do Kernel Patching in Solaris 10?

Hi,
In single user
# init s
# patchadd <kernel_patch>
or the best is to install the last Solaris update patch bundle
See http://sunsolve.sun.com/show.do?target=patches/patch-access
Marco.

Similar Messages

  • Last kernel patch for Solaris 10 x86 screwed up my kernel

    Hi,
    The last kernel patch for Solaris 10 x86 (sorry I can�t remember the patch id, but the revision is 30), available from Sun Update Manager screwed up my system.
    The system is still booting but in maintenance mode: smf can't start because of repository corrupted. Given instructions to restore the repository does not work because / filesystem is mounted read-only...
    As I am not a solaris expert, I will reinstall it from CD. I hope I won't loose the filesystem.
    I was used to blindly trust Sun solaris patches, that was a mistake.
    Laurent.

    i dont know why but still i do get default log in into the single mode
    after startup
    Requesting maintenance mode
    (See /lib/svc/share/README for aditional information. )
    Root password for system maintenance (control-d to bypass):i did removed the patch installed before so now
    SunOS jorgito 5.10 Generic_118844-26 i86pc i386 i86pcand finaly i do have milestone like this
    bash-3.00$ svcprop restarter | grep mile
    options/milestone astring svc:/milestone/multi-user:default
    dont know what to do else, also tried to synchronize boot-archive from solaris failsafe ...

  • Applied Kernel Patch to Solaris 10 on v40z, no longer auto boots

    I recently updated the patches on a v40z machine including a kernel patch. After rebooting, the machine would no longer automatically boot to Solaris. Instead it would just wait for user input at the Grub bootloader screen. Anyone experienced this or have a solution?
    I believe the patch in question is 118855-19
    # bootadm list-menu
    The location for the active GRUB menu is: /boot/grub/menu.lst
    default 0
    timeout 10
    0 Solaris 10 6/06 s10x_u2wos_09a X86
    1 Solaris failsafe

    SOLVED:
    Disabled ECC in the bios (though Windows and Gentoo Linux show now trouble whatsoever with my ECC memory, solaris doesn't like it)

  • Kernel patches in Solaris

    All,
    First of all, I am fairly new to Unix...
    I have a SAP NW 7.0 subscription system running on Solaris 10; I installed all usage types except PI. Now I want to upgrade to SP14. As part of this I have to patch the kernel from 111 to 133 as well.
    According to this thread (https://forums.sdn.sap.com/click.jspa?searchID=9023739&messageID=4713075), I should copy the newly extracted kernel files to /sapmnt/<SID>/exe.
    Note 19466 though states that I have to copy them to /usr/sap/<SAPSID>/sys/exe/run.
    I did both, my system is up and running but if I check the kernel version under system/status/Sup.Pkg.lvl in the GUI, it still shows 111.
    What is the proper way?
    Also, can't I use JSPM to patch the kernel? If I run it, it shows the kernel but says something like no information available.
    Thanks,
    Guenther

    Found the issue myself: I used root to extract and copy the kernel files. SAPCPE during the start procedure running under <sid>adm did not have permission to copy the files from /sapmnt/<SID>/exe to the other directories.
    After I deleted the existing files and recreated the new kernel using <sid>adm everything worked fine.
    Another newbie lesson learned
    Guenther

  • Kernel patch updation for solaris 10 x86

    I have Solaris 10 06/06 installed on x86 machine which is using svm and clustered with another node. The kernel revision is 118855-19 from the uname -a output. I am looking for the kernel patch updation and I heard 118855-36 is the latest one. Shall I go ahead with this patch and what r the dependency patches for this.
    If anyone done this please guide me..

    Patch 118855-36 is the latest kernel patch for Solaris 10 on x86 and its dependencies are:
    113000-01 117435-02 118344-14 119043-09 119255-14 121264-01 122035-01 123840-01 (or greater)
    Whether you should go ahead and install the patch is up to you, if possible try it out on a test box first. For better advice on this matter, I would suggest posting in the Solaris 10 forum as this forum is for the Sun Update Connection, Patch Manager & PatchPro toolsets.

  • Problem of SIGPOLL(SI_NOINFO) in latest Solaris9 kernel patch

    Hi,
    We are facing a rather strange problem with the latest kernel patch on Solaris 9. (Generic_112233-08). We had not faced this problem with any of the other kernel patches of Solaris 9.
    Our application has a main thread and a single child thread (pthread). The main thread schedules aio_writes() on the raw disk interface and lets the child thread block on sigwaitinfo() to listen to the signal completion notification. This is communicated to it via the SI_ASYNCIO code of SIGPOLL. The child thread then informs the main thread by writing to a bi-directional pipe. Since the main thread has registered for read interest on the bi-directional pipe (via /dev/poll) it is informed of the completion of the aio_write() without having to block itself. Under normal circumstances, the child thread receives SIGPOLL with SI_ASYNCIO code.
    This application has been running fine on all the previous builds of Solaris (Generic, Generic_112233-04, Generic_112233-06) on sparc platform expect with the latest kernel patch. The child thread now keeps receiving SIGPOLL with SI_NOINFO code. There has been no change in our application and we are perplexed to the reason of this behaviour. Since it is SI_NOINFO there is not much debugging information we can get.
    We have been able to replicate this behaviour using a small stand-alone program. We are attaching it at the end of the email. We tried this program on a couple of different Sparc systems and were able to reproduce this behaviour on one of them but not on the other.
    Has anybody faced problems with regard to SIGPOLL in the latest kernel patch of Solaris 9 for sparc systems ?
    Thanks
    Regards
    Raj Pagaku
    proxy-24:~ >uname -a
    SunOS proxy-24 5.9 Generic_112233-08 sun4u sparc SUNW,Ultra-5_10
    proxy-24:~ >gcc -v
    Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2.9/3.2/specs
    Configured with: ../configure with-as=/usr/ccs/bin/as with-ld=/usr/ccs/bin/ld --disable-nls
    Thread model: posix
    gcc version 3.2
    Compiled this program using the following command : gcc -g kernel_bug.c -lrt -lpthread
    #include <stdio.h>
    #include <aio.h>
    #include <errno.h>
    #include <fcntl.h>
    #include <pthread.h>
    #include <signal.h>
    #include <stdlib.h>
    #include <string.h>
    #include <unistd.h>
    #include <sys/resource.h>
    #include <sys/stat.h>
    #include <sys/types.h>
    #define min(x,y) (((x)<=(y))?(x):(y))
    #define DISPLAY_COUNT 10000
    typedef struct DiskInfoCallOut {
    void (*func_ptr)(void *);
    void *data_ptr;
    } DiskInfoCallOut;
    typedef struct DiskInfo {
    struct aiocb di_aiocb;
    DiskInfoCallOut di_callout;
    off_t di_currOffset;
    int di_scheduled;
    } DiskInfo;
    typedef struct Disk {
    int fd;
    char *buffer;
    int bufferLen;
    } Disk;
    static sigset_t aioSignalSet;
    int aioSigFD[2];
    int glob_scheduled = 1;
    int glob_respond = 1;
    Disk disk;
    static void LaunchDiskOperation(DiskInfo *di);
    char BUFDATA[4096] = {'a'};
    char rawDeviceName[256] = "/dev/rdsk/";
    static void
    InitializeDisk()
    int fd;
    if ((fd = open(rawDeviceName, O_RDWR, 0)) == -1) {
    fprintf(stderr, "Unable to open raw device \n");
    exit(-1);
    disk.fd = fd;
    disk.buffer = BUFDATA;
    disk.bufferLen = sizeof(BUFDATA);
    static void
    AIOSignalHandler(int sigNum, siginfo_t* si, void* context)
    fprintf(stderr, "WARN: got signal %d in AIOSignalHandler!\n", sigNum);
    /* Function implementing the slave thread */
    static void*
    AIOSignalThread(void *arg)
    struct sigaction sa;
    siginfo_t info;
    sigset_t ss;
    int sig_num;
    int retVal;
    /* Initialize the signal set*/
    sigemptyset(&ss);
    sigaddset(&ss, SIGPOLL);
    if ((retVal = pthread_sigmask(SIG_SETMASK, &ss, NULL))) {
    fprintf(stderr, "pthread_sigmask failed in AIOSignalThread \n");
    exit(-1);
    sa.sa_handler = NULL;
    sa.sa_sigaction = AIOSignalHandler;
    sa.sa_mask = aioSignalSet;
    sa.sa_flags = SA_SIGINFO;
    if (sigaction(SIGPOLL, &sa, NULL)) {
    fprintf(stderr, "sigaction in AIOSignalThread \n");
    exit(-1);
    /* Wait infinitely for the signals and respond to the main thread */
    while (1) {
    sig_num = sigwaitinfo(&aioSignalSet, &info);
    if (sig_num != SIGPOLL) {
    fprintf(stderr, "caught unexpected signal %d in AIOSignalThread \n",
    sig_num);
    exit(-1);
    if (info.si_code != SI_ASYNCIO){
    fprintf(stderr, "ERROR: siginfo_t had si_code != SI_ASYNCIO, si_code = %d \n", info.si_code);
    continue;
    /* Write the stored pointer value in the pipe so that the main thread can process it */
    if (write(aioSigFD[1], &(info.si_value.sival_ptr), sizeof(info.si_value.sival_ptr)) !=
    sizeof(info.si_value.sival_ptr)) {
    perror("Couldn't write the whole pointer");
    exit(-1);
    return (NULL);
    static void
    Init()
    pthread_attr_t aioAttr;
    pthread_t aioThread;
    int retVal = 0;
    /* Create a bidirectional pipe */
    if (pipe(aioSigFD)) {
    perror("pipe failed");
    exit(-1);
    /* Initialize to prevent other threads from being interrupted by
    SIGPOLL */
    sigemptyset(&aioSignalSet);
    sigaddset(&aioSignalSet, SIGPOLL);
    if ((retVal = pthread_sigmask(SIG_BLOCK, &aioSignalSet, NULL))) {
    fprintf(stderr, "pthread_sigmask failed in Init\n");
    exit(-1);
    InitializeDisk();
    if ((retVal = pthread_attr_init(&aioAttr)))
    fprintf(stderr, "pthread_attr_init failed \n");
    if ((retVal = pthread_attr_setdetachstate(&aioAttr, PTHREAD_CREATE_DETACHED)))
    fprintf(stderr, "pthread_attr_setdetachstate failed \n");
    if ((retVal = pthread_attr_setscope(&aioAttr, PTHREAD_SCOPE_SYSTEM)))
    fprintf(stderr, "pthread_attr_setscope failed in \n");
    if ((retVal = pthread_attr_setstacksize(&aioAttr, 2*1024*1024)))
    fprintf(stderr, "pthread_attr_setstacksize failed \n");
    if ((retVal = pthread_create(&aioThread, &aioAttr,
    AIOSignalThread, NULL)))
    fprintf(stderr, "pthread_create failed \n");
    static void
    UpdateDiskWriteInformation(DiskInfo *di)
    di->di_currOffset += disk.bufferLen;
    di->di_scheduled = 0;
    static void
    DiskOpCompleted(void *ptr)
    DiskInfo di = (DiskInfo )ptr;
    if (aio_error(&di->di_aiocb))
    perror("aio_error");
    if (aio_return(&di->di_aiocb) < 0)
    perror("aio_return ");
    UpdateDiskWriteInformation(di);
    glob_respond++;
    static void
    LaunchDiskOperation(DiskInfo *di)
    int res;
    di->di_callout.func_ptr = DiskOpCompleted;
    di->di_callout.data_ptr = di;
    memset(&di->di_aiocb, 0, sizeof(di->di_aiocb));
    di->di_aiocb.aio_fildes = disk.fd;
    di->di_aiocb.aio_buf = disk.buffer;
    di->di_aiocb.aio_nbytes = disk.bufferLen;
    di->di_aiocb.aio_offset = di->di_currOffset;
    di->di_scheduled = 1;
    di->di_aiocb.aio_sigevent.sigev_notify = SIGEV_SIGNAL;
    di->di_aiocb.aio_sigevent.sigev_signo = SIGPOLL;
    di->di_aiocb.aio_sigevent.sigev_value.sival_ptr = &di->di_callout;
    res = aio_write(&di->di_aiocb);
    if (res == -1) {
    perror("aio op error");
    static void
    HandleSignalResponses()
    int fd;
    #define DISKINFO_CALLOUT_MAX 64
    DiskInfoCallOut* callout[DISKINFO_CALLOUT_MAX];
    struct stat pipeStat;
    int numCompleted;
    int bytesToRead;
    int sz;
    int i;
    fd = aioSigFD[0];
    while (1) {
    /* Find whether there is any data in the pipe */
    if(-1 == fstat(fd, &pipeStat)) {
    perror("fstat");
    exit(-1);
    if (pipeStat.st_size < sizeof(DiskInfoCallOut *))
    break;
    numCompleted = min((pipeStat.st_size/sizeof(DiskInfoCallOut *)),DISKINFO_CALLOUT_MAX);
    bytesToRead = numCompleted * sizeof(DiskInfoCallOut *);
    if ((sz = read(fd, callout, bytesToRead)) != bytesToRead) {
    perror("Error reading from pipe");
    exit(-1);
    for (i = 0; i < numCompleted; i++)
    (*callout[i]->func_ptr)(callout[i]->data_ptr);
    int main(int argc, char *argv[])
    DiskInfo *di;
    FILE *logPtr1 = NULL;
    FILE *logPtr2 = NULL;
    FILE *logPtr3 = NULL;
    struct rusage ru;
    struct timeval t1, t2;
    long timeTaken = 0;
    int writeCount = 0;
    int i;
    char logFileName1[1024];
    char logFileName2[1024];
    char logFileName3[1024];
    if (argc < 2) {
    fprintf(stderr, "Usage : %s <partition_name> \n", argv[0]);
    exit(-1);
    strcat(rawDeviceName, argv[1]);
    writeCount = 1;
    printf("Partition selected = %s \n", rawDeviceName);
    di = calloc(writeCount, sizeof(DiskInfo));
    sprintf(logFileName1, "%s.log1", argv[0]);
    if ((logPtr1 = fopen(logFileName1, "w+")) == NULL) {
    fprintf(stderr, "Unable to create file test_pgm \n");
    exit(-1);
    sprintf(logFileName2, "%s.log2", argv[0]);
    if ((logPtr2 = fopen(logFileName2, "w+")) == NULL) {
    fprintf(stderr, "Unable to create file test_pgm \n");
    exit(-1);
    sprintf(logFileName3, "%s.log3", argv[0]);
    if ((logPtr3 = fopen(logFileName3, "w+")) == NULL) {
    fprintf(stderr, "Unable to create file test_pgm \n");
    exit(-1);
    Init();
    for (i = 0; i < writeCount; i++) {
    di.di_currOffset = (1 << 18) * (i + 1);
    di[i].di_scheduled = 0;
    gettimeofday(&t1, NULL);
    while (1) {
    int curScheduled = 0;
    /* Schedule the disk operations */
    for (i = 0; i < writeCount; i++) {
    if (di[i].di_scheduled == 0) {
    LaunchDiskOperation(&di[i]);
    glob_scheduled++;
    curScheduled++;
    /* Handle the responses */
    HandleSignalResponses();
    if ((curScheduled) && (glob_respond % DISPLAY_COUNT == 0)) {
    gettimeofday(&t2, NULL);
    timeTaken = ((t2.tv_sec * 1000000 + t2.tv_usec) -
    (t1.tv_sec * 1000000 + t1.tv_usec))/1000;
    printf("Scheduled = %d, Responded = %d, Time Taken = %ld ms \n",
    glob_scheduled, glob_respond, timeTaken);
    fprintf(logPtr1, "Scheduled = %d, Responded = %d, Time Taken = %ld ms \n",
    glob_scheduled, glob_respond, timeTaken);
    fprintf(stderr,"wrote to logPtr1 ..\n");
    fprintf(logPtr2, "Scheduled = %d, Responded = %d, Time Taken = %ld ms \n",
    glob_scheduled, glob_respond, timeTaken);
    fprintf(stderr,"wrote to logPtr2 ..\n");
    fprintf(logPtr3, "Scheduled = %d, Responded = %d, Time Taken = %ld ms \n",
    glob_scheduled, glob_respond, timeTaken);
    fprintf(stderr,"wrote to logPtr3 ..\n");
    t1 = t2;

    Hi @cooldog ,
    I hit this same LVM2 snapshot kernel oops on several Oracle Linux 6.5 servers running UEK R3 kernel version 3.8.13-16.3.1.  I have Linux Premier Support so I opened a Service Request.  Oracle Support got back to me with the following notes.
    Hello Matt, 
    Bug 17487738 : EXT4: STRESS TESTING WITH SUSPEND/RESUME FS ACCESS CAUSES FS ERRORS This bug is fixed in kernel version: 3.8.13-18. This kernel will be available quite soon for download.
    You may upgrade the kernel once its available. ~Siju 
    Update
    Dear Matt, Latest available UEK3 kernel version 'kernel-uek-3.8.13-26.el6uek.x86_64' incorporates the required bugfix. [root@server1 tmp]# rpm -q --changelog -p kernel-uek-3.8.13-26.el6uek.x86_64.rpm | grep -i 17487738
    warning: kernel-uek-3.8.13-26.el6uek.x86_64.rpm: Header V3 RSA/SHA256 signature: NOKEY, key ID ec551f03
    - fs: protect write with sb_start/end_write in generic_file_write_iter (Guangyu Sun) [Orabug: 17487738] <<<<<<======================================== You can download the UEK3 kernel from ULN or from public-yum repo. 
    http://public-yum.oracle.com/repo/OracleLinux/OL6/UEKR3/latest/x86_64/getPackage/kernel-uek-firmware-3.8.13-26.el6uek.noarch.rpm
    http://public-yum.oracle.com/repo/OracleLinux/OL6/UEKR3/latest/x86_64/getPackage/kernel-uek-3.8.13-26.el6uek.x86_64.rpm Hope this helps! ~Siju 
    Subscribe to the Oracle Linux el-errata mailing list .
    The latest kernel-uek-3.8.13-26.el6uek.x86_64 version fixed the problem.
    - Matt

  • Steps for Kernel Patch Updation on Solaris 10 X4100 with 2disks mirrored

    Hi all,
    I have Solaris 10 10/06 (118855-19) installed on one of the X4100 server. This is the time for me to update the latest kernel patch (118855-36). We have two disks mirrored. My questions are,
    1) Do i need to detach any of the disk from the mirror before doing any patching.
    2) Is it possible to install the patches without detaching any disks from the mirror. (i.e. installeing patch on mirrored root filesystem)
    3) how to boot from the second disk in case the patch installation creates problem while booting up.
    Any suggestions or steps which you have already implemented for the above scenario.

    This isn't really a question for this forum, you may be better to look at some of the sys-admin forums for a complete answer.
    You should not need to break the mirror in order to apply the kernel patch, however doing so would allow for quicker recovery of the system should something go wrong during patching.
    I would strongly advise that you read the special install instructions for the kernel patch prior to installing it.
    http://sunsolve.sun.com/search/document.do?assetkey=1-21-118855-36-1
    You may also wish to use a patch cluster rather than smpatch/updatemanager, these can be downloaded from SunSolve:
    http://sunsolve.sun.com/private-cgi/show.pl?target=patchpage

  • Static library not accessed properly after Solaris Kernel patch update !

    Hi,
    We are facing a sever issue in our application after our customer updated the Solaris 10 kernel patch u9 to u10.
    We have two static libraries libdlib.a and libDLIB.a, with exactly same code base, but these two libraries are scattered across the code base and linked by many shared objects in our application.
    However, one of the shared objects that links to "libdlib.a" library tries to access a function from "libDLIB.a". This behavior is causing a crash at a later point, since that shared object is supposed to access the function from "libdlib.a". Moreover, we found this is happening through the use of dbx.
    I'm unable to understand why this problem surfaced after kernel patch update, though still the shared object works fine on Solaris 10 u9 patch.
    Flow is something like this :
    1. syslogrecorder.so gets loaded by one of the processes.
    2. syslogrecorder.so is linked to "libdlib.a" at compile time, so it uses "libdlib.a" function DLIB_LoadLibrary and gets a handle to all the function pointers of the loaded library ( The purpose of DLIB_LoadLibrary is to load a shared library dynamically using dlopen )
    3. syslogrecorder.so tries to do a "dlsym" and to do that it needs access to the library handle which we got in previous call DLIB_LoadLibrary. So syslogrecorder.so calls another function from DLIB_ProcAddress, which actually gives back the access to the loaded shared library.
    Here is a catch in step 3, it is supposed to call DLIB_ProcAddress from the libdlib.a but as we observed from dbx output it does so by calling DLIB_ProcAddress from libDLIB.a and hence fails to give back the access to loaded shared library, causing crash at a later point in code.
    Can someone put some light here that why this could happen ??
    Thanks
    Kuldeep

    To clarify: You did not modify or rebuild any of your binaries, but after installing a kernel patch, the application stopped working. Most likely, something about your application depended on a accidental behavior of the runtime loader. That accidental behavior changed due to the patch, and your application failed.
    For example, if there is a circular dependency among shared libraries, the loader will break the cycle at an arbitrary point to establish an initialization order. By accident, that order might work, in the sense of not causing a problem. A change to the loader could cause the cycle to be broken at a different point, and the resulting initialization order could cause a now-uninitialized object to be accessed. I'm not saying this is what is wrong, but this is an example of a dependency on accidental loader behavior.
    Finding your actual problem will require tracing the sequence of operations leading up to the failure. You are more likely to find help in a Solaris linker forum. AFAIK, there are currently no Oracle forums for Solaris, and the old OpenSolaris forums have been converted to mailing lists. You can try the "tools-linking" list found on this page:
    http://mail.opensolaris.org/mailman/listinfo
    I also suggest you review the paper on best practices for using shared libraries written by Darryl Gove and myself:
    http://www.oracle.com/technetwork/articles/servers-storage-admin/linkinglibraries-396782.html
    If you have a service contract with Oracle, you can use your support channel to get more help.
    Edited by: Steve_Clamage on May 18, 2012 3:21 PM

  • How do I see the Kernel patch level in Java ONLY instance?

    Could someone please tell me How do I see the Kernel patch level in a Java ONLY instance?
    In Abap, it is simple!
    In Java I see in the System Info: Kernel Version:  7.00 PatchLevel 108458.44 
    BUT that doesn't correspond to the real patch level which I can see when I do disp+work which gave me 111

    Hello Yechezkel,
    I am not sure whether the patch number you are looking for is available.
    Typically you can use "-v" to display the patch level of SAP kernel programs. When I run "jcontrol -v" or "jlaunch -v", the patch number is blank (at least on the 6.40 release I checked)
    The SP level should be able to tell how current the Java instance is updated, especially for NetWeaver 7 systems always patched with JSPM stack.
    Best regards,
    Victor

  • Kernel patch update for solaris 10 x86

    I have Solaris 10 06/06 installed on x86 machine which is using svm and clustered with another node. The kernel revision is 118855-19 from the uname -a output. I am looking for the kernel patch updation and I heard 118855-36 is the latest one. Shall I go ahead with this patch and what r the dependency patches for this.
    If anyone done this please suggest and guide me..

    For Solaris 10 x86 the latest offered with smpatch is 125101-07 and yes it may be recommended to patch. Then again you said clustered with sun cluster? You may want to check the documentation and if your machines aren't facing the internet you may wait for 7/07 to hit the street and do an upgrade.

  • Solaris 10 kernel Patch 127127-11

    we need to apply solaris 10 kernel Patch 127127-11 in our prod server as a prerequisite for oracle10g patch set 10.2.0.4 installation
    but i found a Doc 242366 (May Cause a system Panic from ip_wput_ioctl()).It is mentioned in doc that Binary relief is available through normal
    support channels.Is that Binary complete fix of this problem?If yes, then i need that binary please give me the link where i can download the binary,
    If not, then what is the solution of this problem.?
    Thanks

    These kinds of binary hotfixes/IDR's are only available through sun support to contract customers.
    If your concerned, I suggest you raise a support case.
    That being said, 127127-11 is kinda old. So I would be surprised if the bug hadnt been fixed by now.
    Its been replaced by either 137111 or 137137.
    Ive upgraded at least a dozen systems past that level and never seen a problem.
    So it can't be too common..

  • Solaris 10 kernel patch upgrade

    Hi all,
    i am in a process of upgrading the kernel patch of a solaris 10 x64 machine, the present kernel patch is "5.10 Generic_144489-06 i86pc i386 i86pc" the updated kernel patch that i am going to upgrade to is patch "144501-19".
    could you please let me know if there is any special handling to undergo the upgrade or it is only sufficient to follow the 144501-19 README file?
    i know that i should put the system on the single user mode level and i have to have a valid OS backup before doing the patchadd, but if i am missing anything else please let me know
    thanks

    Hello,
    if you are having system filesystems (/ /usr /var ...) on software RAID1 devices, best practise is to split mirrors and have most recent actual copy of the system (or create current ZFS snapshot if using ZFS on root),patch it in single user mode or use Live Upgrade functionality and create alternate boot environment and patch the ABE on running system (you can find various info in Oracle Docs or get inspired by various blogs:http://nilesh-joshi.blogspot.com/2011/10/oracle-solaris-patching-using-live.html). I always patch kernel and other system components using PCA patching utility - have a look on project homepage http://www.par.univie.ac.at/solaris/pca/ it's really advanced and helpful tool. It can save you lot of time when solving dependecies and also downloading the patches.
    Good luck

  • Solaris 9 kernel patch

    Hello everyone,
    I'm new to Solaris, so excuse me if my questions seems stupid.
    I have e solaris 9 SunOS sirius 5.9 Generic_118558-11 sun4u sparc SUNW,Sun-Fire-V890and I want to increase the kernel patch level to the last one.
    Could you give me some hints where I can find and download the latest patch and the steps to install it.
    Thanks for your time.

    [http://sunsolve.sun.com/search/document.do?assetkey=1-21-122300-31-1]
    Instructions are in the readme file for the patch.

  • Solaris kernel patch levels

    I have engineers asking for a particular kernel patch level to be installed on machines.
    Is there anywhere that lists the kernel patch level on releases and hardware updates for Solaris 8-10?
    Thanks,
    Duane

    Please start with Sunsolve (http://sunsolve.sun.com) and Sun documentation (http://docs.sun.com) web sites.

  • Solaris 10 U4 and kernel patches

    When I install a fresh U4 machine, I then (as I always do) apply the recommended patch cluster. U4 has kernel patched to 120011-14. In the patch cluster, there are kernel patches 118833-36 and also 120011-14. When I run the patch cluster, it installs 118833-36! Isn't this older than the kernel on there? Shouldn't both 118833-36 and 120011-14 BOTH not install as the kernel is already at level 120011-14. The cluster gets to 118833-36 installs that and then of course every patch after that one fails as the machine is waiting for a reboot.

    KJP 137138-09 should be ok with cpquary3 driver 1.9.1. KJP 137138 introduced new feature which does not allow misaligned pointer mutexes to work and panics the system. with revision 07 SUN introduced a new environment variable as a for applications which cannot be ported easily "6729759 need to accommodate non-8-byte-aligned mutexes".
    This is documented in alert 244606 "The resolution for OpenSolaris releases sets _THREAD_LOCKS_MISALIGNED to 0. This is to ensure that any faulty applications fail and are identified. To allow such applications to continue to work on OpenSolaris releases based upon snv_96 or later, the environment variable _THREAD_LOCKS_MISALIGNED must be set to 1." For this to work you need to have revision 09 of this KJP applied.
    Can you post the stack trace so i can have a look at it. I guess you have another application which uses unaligned mutexes.
    A pkginfo of the cpquary3 package would also be useful.
    -Marco

Maybe you are looking for