Multithreaded behavior of new Solaris 8 /dev/poll

When one thread is blocked in the ioctl for the /dev/poll device
(to retrieve the fd's with events), a write from a different thread
to add to the set appears to block indefinitely.
I figured this ability (to add to the set from a different thread
with no mutexing) was a great feature, but it looks like the
write call blocks indefinitely. Before I invest in the unfortunate
workaround, I wondered if anyone had dealt with this before.
Thanks.

I have not yet extracted a simple program, but the basics are:
Thread one:
fd1 = open()
fd2 = open()
fdp = open("/dev/poll"..)
ioctl(fdp, DP_POLL, ...)
Thread two (later):
write(fdp, {struct with fd1, and POLLIN});
... much successful operation of the first thread receiving
events from the ioctl, and properly "dispatching" them
write(fdp, {struct fd1, and POLLREMOVE);
It is this second write that hangs indefinitely.
The only way I get it to NOT hang is by giving the
ioctl(DP_POLL) in the first thread a timeout.
When the ioctl returns due to timeout, the second thread that was hung in
"write", finally returns.
(my email is [email protected])
Thanks for any ideas or help.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

Similar Messages

  • Solaris 10 /dev/poll bug

    Solaris 10, at least on my T2000, seems to give me an EINVAL from the DP_POLL ioctl in a case where it shouldn't. The below example code should clarify:
    #include <stdio.h>
    #include <stdlib.h>
    #include <sys/types.h>
    #include <fcntl.h>
    #include <errno.h>
    #include <limits.h>
    #include <sys/resource.h>
    #include <sys/devpoll.h>
    This program demonstrates what seems to be a bug in the /dev/poll interface
    on Solaris 10 on our T2000. The man page says:
    EINVAL The request or arg parameter is not valid
    for this device, or field of the dvpoll
    struct pointed by arg is not valid (for
    example, dp_nfds is greater than
    {OPEN_MAX}).
    But in this case, we get EINVAL even though dp_nfds is not greater than
    OPEN_MAX.
    void fatal(const char *f)
    fprintf(stderr, "Unable to show problem: %s\n", f);
    exit(1);
    int main(void)
    struct rlimit r;
    struct pollfd pfd[256];
    struct dvpoll dp;
    int i;
    if(getrlimit(RLIMIT_NOFILE, &r)!=0) fatal("unable to get file limit");
    if(r.rlim_cur!=256) fatal("set fd limit to 256");
    if(OPEN_MAX!=256) fatal("OPEN_MAX must be 256");
    i=open("/dev/poll", O_RDWR);
    if(i<0) fatal("unable to open /dev/poll");
    dp.dp_timeout=0;
    dp.dp_nfds=256; /* Changing this to 255 fixes the problem */
    dp.dp_fds=pfd;
    if(ioctl(i, DP_POLL, &dp)==0) fatal("it does not appear on this system");
    printf("errno=%d - Why?\n", errno);
    Any ideas?

    I ran into the same problem. /dev/poll is too smart for its own good here. You can't monitor your /dev/poll file descriptor using /dev/poll, so the actual maximum number of file descriptors you can monitor is OPEN_MAX - 1. Solaris enforces that limit.
    This breaks other code out there too, e.g. the libevent library. Annoying even though it's arguably technically correct.

  • Writing /dev/poll application in Solaris 8

    Hi all,
    I am trying to implement /dev/poll based polling in solaris 8 . I got the
    sample code form solaris 2.8 man pages for /dev/poll .
    I am able to compile the program but when I try to run it the ioctl
    call fails giving an error of "Invalid Argument" .
    What could be the reason for the ioctl faliure . Any help or pointers
    will be greatly appreciated.
    regards
    Rajesh K
    Section of the code .
    nt i=0 ,a=0,clen;
    int j=0,pret=0;
    struct sockaddr_in serv , cli ;
    struct pollfd pfd[2];
    /* struct dvpoll dopoll;
    dvpoll_t dopoll;
    int wfd;
    while(1)
    dopoll.dp_timeout = -1;
    dopoll.dp_nfds = 2;
    dopoll.dp_fds =pfd ;
    errno=0;
    if((pret = ioctl(wfd ,DP_POLL ,&dopoll)) < 0)
    perror("/dev/poll ioctl DP_POLL error");
    printf(" Errno = %d \n",errno);
    exit(0);
    }

    pfd is a array of pollfd structures and has been initialised to the
    file descriptors that has to be polled. The write to /dev/poll of that structure is also successful.
    It looks like that ioctl is not able to recogonise this device may have to configure its device number but how I dont know.

  • Solaris 10 on t1000 - write() to /dev/poll hangs on asm instrn

    hi,
    i've got a streaming server which uses /dev/poll and once in a while it hangs. upon debugging with dbx i found that sometimes it gets stuck inside the write() call to remove the fd from polled fd structure at the assembly instruction "ta 8" which is for a syscall, correct? and, sometimes it gets stuck inside sosendmsg() at "ta 8" too.
    this bug seems to reproduce intermittently only when the server is configured with 33 (the cpu has 32 coolthreads) worker pthreads each of which can add/remove fds from the poll device. each thread opens the /dev/poll seperately, so they have different fds to write to /dev/poll.
    the problem happens after all of the threads have started up, so it does not appear to be an issue with thread spawning. if the server is configured for lesser threads this behavior doesn't happen. i haven't increased the stress level on the server to say for certain that that is the case, but under the same load it doesn't happen.
    (1) the _write() call hang happens in the single thread that is responsible for handling all the incoming connections.
    (2) the sosendmsg() hang happens in any one of the 32 threads which handle all out-going data (streaming).
    hardware: t1000 with 8 cores (8G ram)
    compiler:s SUN C/C++ 5.8 2005/10/13
    application: helix server
    questions:
    (0) there is no need to lock the poll device even though mulltiple threads are writing to /dev/poll thru different fds, right?
    (1) is this a known bug?
    (2) how can i use dtrace (or any other tool) to probe beyond the syscall trap when the server hangs?
    here is the stack of the last frame in dbx for _write:
    0xff2412a4: _write       :      st       %o0, [%sp + 68]
    0xff2412a8: _write+0x0004:      mov      4, %g1
    => 0xff2412ac: _write+0x0008:      ta       8
    0xff2412b0: write+0x000c:      bcc,pt   %icc,write+0x20 ! 0xff2412c4
    0xff2412b4: _write+0x0010:      cmp      %o0, 91
    0xff2412b8: write+0x0014:      be,a,pn  %icc,write+0x4 ! 0xff2412a8
    0xff2412bc: _write+0x0018:      ld       [%sp + 68], %o0
    0xff2412c0: write+0x001c:      ba,a     cerror ! 0xff1a2380
    0xff2412c4: _write+0x0020:      retl    
    0xff2412c8: _write+0x0024:      nop     
    for sosendmsg:
    0xff240458: sosendmsg : st %o0, [%sp + 68]
    0xff24045c: sosendmsg+0x0004: mov 241, %g1
    0xff240460: sosendmsg+0x0008: ta 8
    => 0xff240464: sosendmsg+0x000c: bcc,pt %icc,_so_sendmsg+0x20 ! 0xff240478
    0xff240468: sosendmsg+0x0010: cmp %o0, 91
    0xff24046c: sosendmsg+0x0014: be,a,pn %icc,_so_sendmsg+0x4 ! 0xff24045c
    0xff240470: sosendmsg+0x0018: ld [%sp + 68], %o0
    0xff240474: sosendmsg+0x001c: ba,a _cerror        ! 0xff1a2380
    0xff240478: sosendmsg+0x0020: retl
    0xff24047c: sosendmsg+0x0024: nop
    any help is appreciated.
    sincerely,
    -atin

    hi,
    To look and see what the applications threads are doing once the application hangs
    as root run
    # mdb -k
    you should get a ">" prompt.
    then you could run..
    $<threadlist and look for your application process name amongst all the stack traces.
    or ::ps -t and find your process, that will list a load of kernel threads for your app.
    then you can do "threadpointer"::findstack for each of your threads eg
    here is ::ps output for vold
    R 342 1 342 342 0 0x4a014000 000006000987dbc0 vold
    T 0x300019c4cc0 <TS_SLEEP>
    T 0x300018ea380 <TS_SLEEP>
    T 0x300019dd960 <TS_SLEEP>
    T 0x30001152380 <TS_SLEEP>
    it has the 4 sleeping threads. lets see where they are stopped.
    0x300019c4cc0::findstackstack pointer for thread 300019c4cc0: 2a10116d061
    [ 000002a10116d061 cv_wait_sig_swap_core+0x11c() ]
    000002a10116d111 poll_common+0x4e8()
    000002a10116d201 pollsys+0xd8()
    000002a10116d2e1 syscall_trap32+0xcc()
    and so on for all four threads.
    that should give us an idea as to where in the devpoll code your thread is stopped
    but.. lets look at devpoll.c especially at where could dpwrite() block
    ah there is a comment saying that we wait for any other writers via dpwrite or any
    readers in dpioctl(), it keeps a reference count per fd that is opened into /dev/poll
    Is it possible that you have a thread in a longterm poll on the same fd as the blocking write, it looks like the write will block till the poll completes, pstack should give you the
    fd for each write/ioctl as the first argument.
    tim

  • Solaris8 and 9 (possibly 7) /dev/poll driver bug report.

    Hello,
    I'd like to report a bug in the solaris 8 and 9 /dev/poll driver (poll(7d)).
    As i do not have a support account with sun or anything like that, there
    seems to be no other way to do that here (which is of course a very sad
    thing).
    Bug details:
    The /dev/poll device provides an ioctl-request (DP_ISPOLLED) for checking
    if a particular filedescriptor is currently in the set of monitored
    filedescriptors for that particular /dev/poll fd set (open /dev/poll fd).
    A quote from the documentation of the poll(7d) manual page taken from
    Solaris9:
    "DP_ISPOLLED ioctl allows you to query if a file descriptor is already in
    the monitored set represented by fd. The fd field of the pollfd structure
    indicates the file descriptor of interest. The DP_ISPOLLED ioctl returns 1
    if the file descriptor is in the set. The events field contains the
    currently polled events. The revents field contains 0. The ioctl returns 0
    if the file descriptor is not in the set. The pollfd structure pointed by
    pfd is not modified. The ioctl returns a -1 if the call fails."
    It says that when you query for an filedescriptor which is currently being
    monitored in the set, that it would return 1, and change the events field of
    the pollfd structure to the events it's currently monitoring that fd for.
    The revents field would be set to zero.
    However the only thing which actually happens here, is that FD_ISPOLLED
    returns 1 when the fd is in the set and 0 if not. When the fd is in the
    set, when FD_ISPOLLED returns 1, the events field remains unmodified, but
    the revents field gets changed.
    A small sample code to illustrate:
    #include <stdio.h>
    #include <unistd.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>
    #include <sys/devpoll.h>
    main() {
    struct pollfd a;
    int dp_fd = open("/dev/poll", O_WRONLY);
    a.fd = 0; /* stdin */
    a.events = POLLIN; /* we monitor for readability, POLLIN=1 */
    a.revents = 0;
    write(dp_fd, &a, sizeof(a));
    a.fd = 0;
    a.events = 34; /* filled in with bogus number to show malfunctioning */
    a.revents = 0;
    printf("DP_ISPOLLED returns: %d\n", ioctl(dp_fd, DP_ISPOLLED, &a));
    printf("a.fd=%d, a.events=%hd, a.revents=%hd\n", a.fd, a.events,
    a.revents);
    According to the documentation of /dev/poll and namely DP_ISPOLLED this
    program is supposed to print the following:
    DP_ISPOLLED returns: 1
    a.fd=0, a.events=1, a.revents=0
    However it prints the following:
    DP_ISPOLLED returns: 1
    a.fd=0, a.events=34, a.revents=1
    You can take any number instead of '34' and it will simply remain untouched
    after the DP_ISPOLLED ioctl-request.
    I hope it's clear now that the solaris8 and solaris9 (and probably solaris7
    with /dev/poll patch too) DP_ISPOLLED implementation is broken.
    This bug is also easily illustrated by looking at the solaris8 kernel sourcecode:
    <snippet osnet_volume/usr/src/uts/common/io/devpoll.c:dpioctl()>
    case DP_ISPOLLED:
    pollfd_t pollfd;
    polldat_t *pdp;
    if (pollfd.fd < 0) {
    mutex_exit(&pcp->pc_lock);
    break;
    pdp = pcache_lookup_fd(pcp, pollfd.fd);
    if ((pdp != NULL) && (pdp->pd_fd == pollfd.fd) &&
    (pdp->pd_fp != NULL)) {
    pollfd.revents = pdp->pd_events;
    if (copyout(&pollfd, (caddr_t)arg,
    sizeof(pollfd_t))) {
    mutex_exit(&pcp->pc_lock);
    DP_REFRELE(dpep);
    return (set_errno(EFAULT));
    *rvalp = 1;
    </snippet>
    its' clearly visible that the code writes the current monitored events to
    the revents field:
    'pollfd.revents = pdp->pd_events;'
    and that it doesnt set revents to zero.
    It's funny to see that this has been like this since Solaris8 (possibly 7). That means nobody ever used DP_ISPOLLED that way or people were simply to lazy to file a bug report.
    Another funny thing related to this. is that Hewlett-Packard did seem to know about this. Since HP-UX11i version 1.6 they also support /dev/poll. From their manual page i ll quote some sentences from their WARNING session:
    "The ioctl(DP_ISPOLLED) system call also returns its result in the revents member of the pollfd structure, in order to be compatible with the implementation of the /dev/poll driver by some other vendors."
    Hopefully this will get fixed.
    I also like to reexpress my very negative feelings towards the fact that you're not able to file bug reports when you do not have a support contract. Ridiculous.
    Thanks,
    bighawk

    Have I mentioned how much i love my playbook now Great job on os 2.0

  • My ipad2 is getting lazy with the wifi. On any router it doesn't get the signal by itself, unless I'm so close that the pad and the antenna are touching. Other solution, to turn off and on again the wifi button on the iPad. This strange behavior is new...

    My ipad2 is getting lazy with the wifi. On any router it doesn't get the signal by itself, unless I'm so close that the pad and the antenna are touching. Other solution, to turn off and on again the wifi button on the iPad. This strange behavior is new, before my iPad was blazing fast at getting any known wifi connection. Sme help please ??

    it sure sounds like the battery is defect

  • Solaris 10 Dev. Edition - Network config issue (NIC,DHCP,Can't ping router)

    I am a developer getting started with Solaris 10 configuration. I recently installed Solaris 10 and have run into an issue with network connectivity.
    I have done much research on this and I was able to get communiction to the internet established once, but the settings were lost on reboot.
    Overview - The Solaris box is connected to a router which is acting as a DHCP server.
    AMD 64 dual 2.6
    nForce4+ integrated NIC
    1) I am not able to obtain an address from the router. Nor do I get a respons back when I ping it. I get an IP etc if I boot into Windows so phyicial connectivity is fine.
    2) Upon reboot the device nfo0 as shown using ifconfig -a has an IP of 0.0.0.0.
    3) If I run ifconfig [hostname] my machine gets the ip from the hosts file, but I would like to obtain this from the router.
    4) NOTE - the machine shows as active on my router, but the Solaris box cannot be reached from other computers on the networ, nor do I get a reply back when pinging the router from the Solaris box.
    GOAL - reach and obtain a DHCP from the router and have the changes stick upon reboot.
    /etc/hosts contents
    127.0.0.1 localhost loghost
    192.168.1.55 solarisX /*<-- this is what I get when I do ifconfig nfo0 solarisX */
    /etc/hosname.nfo0
    netmask + 255.255.255.0
    solarisX
    /etc/defaultrouter
    192.168.1.254
    /et c/netmasks
    192.168.0.0 255.255.2550
    Specific Steps taken:
    Using the driver nfo-2.4.5 locate at http://homepage2.nifty.com/mrym3/taiyodo/eng/ I did the following.
    % cd /.../nfo-x.x.x
    % rm obj Makefile
    % ln -s Makefile.${KARCH}_${COMPILER} Makefile
    % ln -s ${KARCH} obj
    where ${KARCH} is the result of `isainfo -n`, and ${COMPILER} is
    "gcc" or "suncc" which you want to use to make the driver.
    4. Testing
    Testing before installation is strongly recommended.
    # cd /.../nfo-x.x.x
    # /usr/ccs/bin/make install
    # ./adddrv.sh
    # /usr/ccs/bin/make uninstall (for solaris7, don't remove the file )
    # modload obj/nfo
    # devfsadm -i nfo (for solaris7, use drvconfig and reboot with -r )
    # ifconfig nfoN plumb ( where N is an instance number, typcally 0 for first card)
    # ifconfig -a ( you will see an entry for nfoN)
    # ifconfig nfoN YOUR-HOST-NAME
    # ifconfig nfoN ( ensure IP address is correct)
    # ifconfig nfoN up ( and then you can test with ping, telnet, ftp ...)
    5. Installation
    After you ensure that the nfo driver is fully functional, install it.
    (1) copy the nfo driver into the kernel directory
    # cd /.../nfo-x.x.x
    # /usr/ccs/bin/make install
    If you do not test the nfo driver yet, execute the following commands:
    # ./adddrv.sh
    # devfsadm -i nfo (for solaris7, use drvconfig and reboot with -r)
    (2) Configure the network interface. Create and/or modify the following file:
    /etc/hostname.nfoN
    (3) Reboot the system.
    # init 6
    Edited by: hedger on Nov 16, 2007 11:17 PM

    Thanks Alan. I worked on trying to get the NIC working again last night. I had it working once, although the settings did not perist. I can still get the device to load, but I can't communciate with the router (it's not physical because another OS can reach it.
    I took your advice and tried the sys-unconfig. But I did not have much success.
    I am wondering if plopping in a new PCI NIC would be the most efficient route to get the server up.
    What kind of NIC do you utilize and have had success with?
    I am looking at possibly a DLINK DFE-530 or NetGear FA-311. I don't need wireless at this point just a rock solid DEV box.
    Thanks again for the previous info.
    Ted

  • After partition using fdisk, i can not see the new device file (/dev/sdd1)

    I used fdisk -l to partition /dev/sdd, use the entire disk as partition 1. it looks successful:
    # fdisk -l /dev/sdd
    Disk /dev/sdd: 10.7 GB, 10737418240 bytes
    64 heads, 32 sectors/track, 10240 cylinders
    Units = cylinders of 2048 * 512 = 1048576 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x35e3e2c4
    Device Boot Start End Blocks Id System
    /dev/sdd1 1 10240 10485744 83 Linux
    the problem: i don't see the device file /dev/sdd1. tried to delete it and partition again, the same.
    also tried
    - mknod b 8 70 /dev/sdd1, to manually create it, but when i use oracleasm createdisk DISK2 /dev/sdd1, the command won't recognize manually crated /dev/sdd1.
    - reboot the server,
    - "partprobe" command, no luck.
    in addition, cat /proc/partitions seems including /dev/sdd1:
    cat /proc/partitions
    major minor #blocks name
    8 16 292935982 sdb
    8 0 143338560 sda
    8 1 512000 sda1
    8 2 142825472 sda2
    252 0 25608192 dm-0
    252 1 25608192 dm-1
    252 2 62423040 dm-2
    252 3 35012608 dm-3
    252 4 20480000 dm-4
    252 5 10240000 dm-5
    252 6 4096000 dm-6
    8 32 10485760 sdc
    8 33 10484736 sdc1
    8 48 20971520 sdd
    8 49 20971504 sdd1
    8 64 10485760 sde
    8 65 10485744 sde1
    any advice?
    Thanks as alwasy!
    Edited by: 943714 on Apr 25, 2013 10:55 AM

    After you create a new partition, always verify it:
    # fdisk -l /path/to/diskOnce that confirms the new partition, you must tell the kernel to re-read the partition table. Several ways to do this, depending on what your storage connection is. This often works:
    # partprobe /path/to/mydiskThen check if the kernel sees the partition:
    # grep /proc/partitions mydiskIf it does, you are done.

  • I recently obtained a new solar-powered extender battery (2700 mAh Li-ion, maker not known) that I can't get to work.  Each time I plug it in, I get a notification from Apple saying I can't use it to charge the phone.  Why not, if I have the correct plug?

    I do have another NewTrent charger that works okay, not great, because sometimes the connection is intermittent and it keeps connecting and disconnecting over and over.  So I was looking forward to trying this new charger, but Apple is blocking it for some reason.  Any idea why?

    Unfortunately, I threw away the plastic packaging for the device, not realizing there was no manufacturer identified on the unit itself.  It just says it is ITEM 68691, 11c China.  It also appears to be rated for the correct voltage - Under SOLAR MOBILE PHONE CHARGER it says, 2700mAh li.ion Battery; 5.1VDC, 250mA
    That's all there is except for a little round white label that has these numbers:  36100, and then underneath, 482012
    Thanks for your comments.  Not sure what else to do, but maybe I can take it in to an Apple store and they can look at it.

  • Lion: Is it possible to fix the behavior of New Event in Month View?

    I desperately want to be able to choose the default length of new events added while in month view.
    I view iCal in Month View and I'm often adding events for next week rather than the current week.  When adding a new event while in Month View, iCal assumes the event is all day long and there's no preference to change this behavior.  To change the event to the length of a typical meeting, you have to:
    Double click the event.
    Then click EDIT.
    Then click to deselect the "ALL DAY" checkbox.
    Click to enter a new time for the event to start.
    Then click a new time for the event to end because iCal assumes the event is 8 hours long.
    If the event you're adding starts after 4PM, you're going to have to change the end DATE too, because iCal assumed the event lasted into the next day.
    MY GOD!  All of that, just to add a 1 hour meeting at 4:30 next Tuesday.
    Sure, I could use the new + button to add an event at a specific time, but for that 4:30 meeting, iCal still assumes the meeting lasts until 12:30 the next morning, which means a ton of click click clicking to edit the event iCal got wrong in the first place.
    I realize I can type out the specifics in that silly bouncy New Event "+" box...  but it's annoying to have to type all of that when, previously, all I had to do was double click next Tuesday and type "Meeting with john" and set the time to 4:30.
    The new iCal is infuriating.  I'm especially shocked that clicking "New Event" in the menubar doesn't open a new event to edit.  Instead, it opens the silly bouncy "+" box.  If I wanted that, I'd have clicked in the stupid + box!  I'm downright shocked by the poor UI decisions in the new iCal.  I assumed this stuff would be fixed in 10.7.1.  Obviously not.

    Sadly, I didn't.  iCal is click intensive these days unless you type everything out and get it exactly right, including some things (like which calendar) that you don't get the opportunity to set the first time.
    The solution is really simple.  Double Clicking on a day while in month view shouldn't create a new day-long event.  It should open the gray edit event pop up box so I can create a new event with the correct info the first time (which calendar, notes, etc).  The current way is to create a new event and then double click THAT to fix it.
    For example: Want to create a new event using your Work calendar?  Unless your Work Calendar is your default or the last calendar you used, you can't.  You can only create a new event using whichever calendar pops up, and then you have to double click the event you created so you can fix it.
    Using the + sign popup box for inputing using native language works when what you need to do is simple.  The moment you want to create a new event that isn't dead simple, you're lost in a sea of extra useless clicks to acomplish what should be a simple task because there is no way to get it right the first time,
    I'm not convinced anyone at Apple uses iCal on a Mac these days.  They probably use iPads, which is why they don't realize how much of a step backward the new iCal for Mac is.

  • MacOS how to use standard UNIX behavior for new files

    Hi,
    I have one problem. then i create new files and folders on my Mac, they get group owner from parant. How can i say to OS that it should get group owner for new files from user GID? same as it works on UNIX/Linux?
    How it works on Mac:
    MacOS:/ napetrov$ mkdir -p /tmp/new_dir
    MacOS:/ napetrov$ id
    uid=34148(napetrov) gid=45956(users)
    MacOS:/ napetrov$ ls -al /tmp/new_dir
    total 0
    drwxr-xr-x 2 napetrov wheel 68 Aug 13 19:06 .
    drwxrwxrwt 14 root wheel 476 Aug 13 19:06 ..
    How it works on linux:
    -bash-3.2$ mkdir -p /tmp/new_dir
    -bash-3.2$ id
    uid=34148(napetrov) gid=45956(users)
    -bash-3.2$ ls -al /tmp/new_dir
    total 20
    drwxr-xr-x 2 napetrov users 4096 Aug 13 19:01 .
    drwxrwxrwt 22 root root 12288 Aug 13 19:01 ..
    Message was edited by: napetrov

    napetrov, there are two varieties of UNIX behavior regarding the group of a newly created file. The first variety, which Linux uses, comes from System V UNIX — where the file is created with the group ID of the creating user. The second variety, which Mac OS X uses, comes from BSD UNIX — where the file is created with the group ID of the directory in which it is located.
    In some UNIXes that come with the System V behavior by default, the BSD behavior can be applied to a particular directory by setting the directory‘s “setgid” bit. However, it is rare for a UNIX that comes with the BSD behavior by default to provide a way to allow the System V behavior for a particular user. To my knowledge, Mac OS X does not provide a way to allow the System V behavior for a particular user; thus, I’d recommend the explicit use of chgrp to set the group ID of a newly created file to that of the creating user, if that behavior is what your application needs.

  • Solaris Express, Dev. Edition 2/07 install problem

    Im trying to install the solaris express developer edition 2/07 dvd i got in the mail.
    Everything goes fine until i have to set up the hard drive for installation. I have two hard drives, 1 SATA (Server 2003), and a 20Gb IDE for this Solaris install.
    When i click next to start installing, it drops out with an error against Solaris Software. the error is as follows:
    ERROR: Could not create Fdisk partition table.
    ERROR: Could not label disks
    ERROR: Could not update disks with new configuration
    ERROR: System installation failed
    Pfinstall failed. Exit stat = java.lang.UNIXProcess@2af0812
    sing existing Solaris fdisk partition (c2d1)
    Im not a nub to linux but i have never used solaris and its been a few years since i've touched it - but im familiar with console.
    Any help would be greatly appreciated. =D

    You do not supply more comprehensive info on Your hardware. Therefore I would like to suggest quite conservative approach.
    1. First of all it will be helpful to get from SUN's website the "Install check tool". It is an image (bootable CD) of diagnostic soft.
    2. Disable in Bios the SATA disk.
    3. Boot the computer with "Install_check_tool" CD inserted into the drive. I hope that this diagnostics will be OK.
    4. Restart the computer and start Solaris installation. You can perform this step directly after step no. 2. Now Bios will see only IDE disc and installation should proceed OK. If not - supply more info on Your hardware and resulting (in this situation) diagnostics.
    Good luck!

  • Clarification Request on New Solaris Cert Exam Requirements.

    Regarding:
    Important Changes to Java, and Oracle Solaris Certifications
    Beginning August 1, 2011, Java Architect, Java Developer, Solaris System Administrator and Solaris Security Administrator certification path requirements will include a new mandatory course attendance requirement.
    Candidates may earn their certifications using the current track requirements found on the Oracle Certification website through July 31, 2011 .....References:
    1) http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=449
    2) SCSA/OSSA 10 OCP Oracle Certified Professional, Oracle Solaris 10 System Administrator : http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=328
    3) SCSEA/OSSESA 10 OCE Oracle Certified Expert, Oracle Solaris 10 Security Administrator : http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=330
    Reference (1) seems to indicate candidates wishing to obtain both OSSA and OSSESA would need to attend two classes, one for each.
    - Or is it that a someone already SCSA/OSSA would not have to attend a further classs for OSSESA (As would be the case for DBA 10 OCP/RAC 10 OCE).
    - If two classes are required, and a candidate has attended System Administration for the Solaris 10 OS Part 2 which is a common pre-req for both exams, would that single class be sufficient for both exams.
    From my point of view, and I suspect a lot of other are in my situation, having an existing SCSA 10.
    .... Does this mean that post July 31 2001 if it was desired to gain the OSSESA 10 OCE would a course then be needed to be attended after that date?
    .... Looking forward to Solaris 11; does this mean existing existing OSSA/SCSA 10 holder will need to attend a course for the upgrade for what I assume will be Solaris 11 certifications at some point.
    Thanx - bigdelboy
    Edited by: bigdelboy on 25-Feb-2011 10:10

    pgoel wrote:
    I wonder how administrator of this board has not answered your questions so far..
    IMHO Certification Forum Moderator's response time is entirely reasonable and expected. She normally visits two or three times a week (has a day job as well!) and I posted this on Friday just after she had done a forum visit to clean up some inappropriated postings. IMHO She normally takes good time to check facts so she can answer with some authority (though a IMHO forum post can never really be totally authorative and contracturally bnding, it is best effort to be helpful). And I would not expect her to work the weekend .... it is important that people other than DBA's and Sysadmins have a life!
    but it is true that you need to attend the required course separately for each certification, sometime this sounds crazy to me, where courses are very costly and it is mandatory to have them before you can write the exam.. Course are good specially for those who does not believe on self-study and specially who has got enough money to throw on.. sometime I do not find doing course was worth paying.. Course also depends on the Instructor, if he is good, you can benefit most but if he is not good then you feel lost money.I am assuming you response in this section is in terms of a question rather that an having an authorative source such as the link I gave earlier. While the webpage pubished earlier would seem authorative IMHO is is possilbe it is incomplete or contains an ambiguity or error (bigdelboy is suspicious and solaris can slow due to people who shout at their computers http://blogs.sun.com/brendan/entry/unusual_disk_latency perhaps causing the correct information some time to arrive).
    Also it is worth remembering Oracle University have for a lot of courses a +satisifation guarentee' to retake the course if you were not satisfied (you still have to spend resource yourself reattending).  (NB: WDP doesn't have this).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • New Solaris 10 install, negative free space

    I just installed Solaris 10 from a Sun DVD over an old linux install. The install process created two UFS partitions with 0 unallocated space (I did everything the default), and everything seemed fine. The system boots correctly, and the filesystems both seem accessible.
    However, in the Solaris Management Console, if I go to Storage->Disks it takes a long time to load, and then it says I have 1 disk with -1.06GB free. When I click on it, it says it doesn't see a Solaris Fdisk partition. What's wrong?
    I installed it on a Thinkpad R40.

    It looks like the filesystems themselves have free space, but the Solaris Management Console doesn't seem to think it has a Solaris Fdisk partition and wants to delete the whole disk.
    I don't even know how to really look at the partition table because I'm not familiar with Solaris's device naming scheme. There's no c0d0 device to run fdisk on.
    The only time I see information about the partition table at all is in the Solaris Management Console, where it tells me that there is negative free space.
    bash-3.00# df -h
    Filesystem size used avail capacity Mounted on
    /dev/dsk/c0d0s0 15G 2.8G 13G 19% /
    /devices 0K 0K 0K 0% /devices
    ctfs 0K 0K 0K 0% /system/contract
    proc 0K 0K 0K 0% /proc
    mnttab 0K 0K 0K 0% /etc/mnttab
    swap 1.4G 648K 1.4G 1% /etc/svc/volatile
    objfs 0K 0K 0K 0% /system/object
    /usr/lib/libc/libc_hwcap1.so.1
    15G 2.8G 13G 19% /lib/libc.so.1
    fd 0K 0K 0K 0% /dev/fd
    swap 1.4G 976K 1.4G 1% /tmp
    swap 1.4G 24K 1.4G 1% /var/run
    /dev/dsk/c0d0s7 17G 18M 17G 1% /export/home

  • New Solaris Rookie needs help.

    I am new with SUN Solaris, I mean I know nothing about it (I'm HP-UX SysAdmin). My boss gave me 3 additional Sun Solaris8 to manage. 2 are in production that I will not touch for now. 1 is test and learnig box - Sun E450. I re-installed Solaris8 OS on this test box. I get stuck with how do I find out the patches to install. I went to Sun web site and the list is too many patches, can't do one at a time. Is there a patch bundle for Solaris8 and how to install it? Thanks for your help.
    Ben

    Ah...okay...so...
    http://patches.sun.com/clusters/9_Recommended.README
    For example...has instructions on how to install the S9 recommended cluster.
    So...what you need to do is go to sunsolve.sun.com you'll find links to get patches. You can either download single patches or patch clusters (basically a giant group of patches that fix a whole bunch of stuff).

Maybe you are looking for