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.
Similar Messages
-
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,
bighawkHave I mentioned how much i love my playbook now Great job on os 2.0
-
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,
-atinhi,
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 -
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. -
Solaris 9 x86 bug report - el_GR.ISO8859-7 & CDE
I'm posting this article here, because I can't find any official Solaris 9 x86 bug report page. I hope the developers will notice it. I'm using Solaris 9 x86 (12/02), with the latest 9_x86_Recommended patch cluster installed, and support for Greek installed too.
It seems there is some kind of problem, when trying to view text files with Greek (el_GR.ISO8859-7) characters, which were created under Windows. To be more specific:
If I boot at CDE with language el_GR.ISO8859-7, and try to view a .txt file (just with a simple double click), which I have created under Windows, with Greek characters,
the screen goes black, and the CDE login screen appears again (restarts). If I keep the Greek language or change the language to US English, I can boot at CDE again, with
no problems. If I try "command line logging", the screen goes off - just like when the computer is powered off, and I can't do anything, (well, except pressing the reset button, that's the sure way). And if I use the "init 6" command, while being logged at CDE, from a terminal, the Graphical Desktop exits, and then, the screen goes off again (just like the computer is powered off), but finally the computer manages to restart.
I'm using the Sun X server, NOT the XFree86 porting kit and I use the entry
:0 Local local_uid@console nobody /usr/openwin/bin/Xsun :0 -dpsfileops
in /usr/dt/config/Xservers file, to start the X server.
Here is the $HOME_DIR/.dt/startlog file:
--- ??? 23 ??? 2003 12:10:51
--- /usr/dt/bin/Xsession starting...
--- starting /usr/openwin/bin/speckeysd
--- Xsession started by dtlogin
--- starting /usr/dt/bin/dtsession_res -load -system
--- sourcing /root/.dtprofile...
--- sourcing /usr/dt/config/Xsession.d/0010.dtpaths...
--- sourcing /usr/dt/config/Xsession.d/0015.sun.env...
--- sourcing /usr/dt/config/Xsession.d/0020.dtims...
--- sourcing /usr/dt/config/Xsession.d/0030.dttmpdir...
--- sourcing /usr/dt/config/Xsession.d/0040.xmbind...
--- sourcing /usr/dt/config/Xsession.d/1000.solregis...
--- could not read /root/.profile
--- starting /usr/dt/bin/dthello &
--- starting /usr/dt/bin/dtsearchpath
--- starting /usr/dt/bin/dtappgather &
--- starting /usr/dt/bin/dsdm &
--- session log file is /root/.dt/sessionlogs/www_DISPLAY=:0
--- DTSOURCEPROFILE is 'true' (see /root/.dtprofile)
--- execing /usr/dt/bin/dtsession with a /sbin/sh login shell ...
--- starting desktop on /dev/pts/3
Sun Microsystems Inc. SunOS 5.9 Generic_112234-03 November 2002
/usr/dt/bin/ttsession[337]: starting
X connection to :0.0 broken (explicit kill or server shutdown).
X connection to :0.0 broken (explicit kill or server shutdown).
I don't know if this is a bug or something, and I'm very curious about the cause. I didn't have much time for any other "experiments".
Anyway, I hope this will help developers solve a problem -if it really exists-.
Angelos Vasilopoulos
Site Security Officer
[email protected]I'm posting this article here, because I can't find any official Solaris 9 x86 bug report page. I hope the developers will notice it. I'm using Solaris 9 x86 (12/02), with the latest 9_x86_Recommended patch cluster installed, and support for Greek installed too.
It seems there is some kind of problem, when trying to view text files with Greek (el_GR.ISO8859-7) characters, which were created under Windows. To be more specific:
If I boot at CDE with language el_GR.ISO8859-7, and try to view a .txt file (just with a simple double click), which I have created under Windows, with Greek characters,
the screen goes black, and the CDE login screen appears again (restarts). If I keep the Greek language or change the language to US English, I can boot at CDE again, with
no problems. If I try "command line logging", the screen goes off - just like when the computer is powered off, and I can't do anything, (well, except pressing the reset button, that's the sure way). And if I use the "init 6" command, while being logged at CDE, from a terminal, the Graphical Desktop exits, and then, the screen goes off again (just like the computer is powered off), but finally the computer manages to restart.
I'm using the Sun X server, NOT the XFree86 porting kit and I use the entry
:0 Local local_uid@console nobody /usr/openwin/bin/Xsun :0 -dpsfileops
in /usr/dt/config/Xservers file, to start the X server.
Here is the $HOME_DIR/.dt/startlog file:
--- ??? 23 ??? 2003 12:10:51
--- /usr/dt/bin/Xsession starting...
--- starting /usr/openwin/bin/speckeysd
--- Xsession started by dtlogin
--- starting /usr/dt/bin/dtsession_res -load -system
--- sourcing /root/.dtprofile...
--- sourcing /usr/dt/config/Xsession.d/0010.dtpaths...
--- sourcing /usr/dt/config/Xsession.d/0015.sun.env...
--- sourcing /usr/dt/config/Xsession.d/0020.dtims...
--- sourcing /usr/dt/config/Xsession.d/0030.dttmpdir...
--- sourcing /usr/dt/config/Xsession.d/0040.xmbind...
--- sourcing /usr/dt/config/Xsession.d/1000.solregis...
--- could not read /root/.profile
--- starting /usr/dt/bin/dthello &
--- starting /usr/dt/bin/dtsearchpath
--- starting /usr/dt/bin/dtappgather &
--- starting /usr/dt/bin/dsdm &
--- session log file is /root/.dt/sessionlogs/www_DISPLAY=:0
--- DTSOURCEPROFILE is 'true' (see /root/.dtprofile)
--- execing /usr/dt/bin/dtsession with a /sbin/sh login shell ...
--- starting desktop on /dev/pts/3
Sun Microsystems Inc. SunOS 5.9 Generic_112234-03 November 2002
/usr/dt/bin/ttsession[337]: starting
X connection to :0.0 broken (explicit kill or server shutdown).
X connection to :0.0 broken (explicit kill or server shutdown).
I don't know if this is a bug or something, and I'm very curious about the cause. I didn't have much time for any other "experiments".
Anyway, I hope this will help developers solve a problem -if it really exists-.
Angelos Vasilopoulos
Site Security Officer
[email protected] -
WebLogic 6.0 performance on Solaris (Excessive polling)
We have a problem with SunOs 5.8, multi (2) CPU, 1GB memory Weblogic 6.0 sp1 and
java 1.3.0.
While running some benchmarks we realized that the tests run much faster (25%-40%
faster) on a NT Pentium III 800 MHz desktop with 256MB RAM than on our Sun Ultra-250
with the above configuration.
So, we decided to do some profiling by turning on hprof (-X:runhprof:cpu=samples,depth=12)
and realized that over 50% of the time is spent in polling the sockets (weblogic.socket.PosixSocketMuxer.poll).
On NT, only 0.23% time is spent on the same activity. I do not know if on NT WebLogic
uses a different IPC model (select vs. interrupt) but the time taken on Solaris
doing polls is outrageous. I am wondering if anybody else out there has experienced
the same problem? Any insights you have to share on this will be appreciated.
TIA,
-Anil SinghalThe Xprof output is misleading - this does not mean that 50% of
the CPU is spent on polling sockets. It simply means that 50% of the thread samples
were in a polling method (probably waiting, not running).
Yes, I believe that an 800MHz PIII would blow away an ES-250 which runs at less
that 300MHz. So you have 2CPU -> 600MHz. Then
(800-600)/800 = 25% which is what you get.
Mike
"Michael Girdley" <----> wrote:
Are you using the performance pack? If not, you should.
Michael Girdley
BEA Systems
Learning WebLogic? http://learnweblogic.com
"Anil Singhal" <[email protected]> wrote in message
news:3adc4f27$[email protected]..
We have a problem with SunOs 5.8, multi (2) CPU, 1GB memory Weblogic6.0
sp1 and
java 1.3.0.
While running some benchmarks we realized that the tests run much faster(25%-40%
faster) on a NT Pentium III 800 MHz desktop with 256MB RAM than onour Sun
Ultra-250
with the above configuration.
So, we decided to do some profiling by turning on hprof(-X:runhprof:cpu=samples,depth=12)
and realized that over 50% of the time is spent in polling the sockets(weblogic.socket.PosixSocketMuxer.poll).
On NT, only 0.23% time is spent on the same activity. I do not knowif on
NT WebLogic
uses a different IPC model (select vs. interrupt) but the time takenon
Solaris
doing polls is outrageous. I am wondering if anybody else out therehas
experienced
the same problem? Any insights you have to share on this will beappreciated.
TIA,
-Anil Singhal -
hi,
I've got a serious trouble after installing the OS. the first time i boot on it (i've also got windows XP on my system, a packard bell laptop h5530), it writes me, at screen, something that looks like an html table, and for each tag say : class not found. I don't know if this is the same bug, but the first three times I've installed solaris i had a unable to find kernel/unixJust for the record: The problem is solved.
I went on looking for more info on this message:
Oct 14 00:07:09 schille gda: [ID 107833 kern.notice] Sense Key: ICRC error during UDMAAnd then found an interesting post from 2004 by Juergen Keil:
The "bad block detected" message appears to be an old/obsolete error
message text, somewhere in the Solaris "ata" driver.
The ATA-1 standard (1997?) defined the 0x80 bit in the IDE
controller's error register as "bad block detected". (See page 32 on
<URL:http://www.t13.org/project/d0791r4c-ATA-1.pdf>)
The 0x80 bit seems to be "reserved" (undefined, not used any more)
with ATA-2 and ATA-3.
ATA-4 and newer now defines this bit 0x80 as ICRC "interface CRC error
has occurred during an Ultra DMA data transfer" when using ultra dma
transfers. (see the description of the "READ DMA" or "WRITE DMA"
command in <URL:http://www.t13.org/project/d1153r18-ATA-ATAPI-4.pdf>).
The Solaris ata driver seems to interpret the 0x80 bit according to
the old / obsolete 1997 ATA-1 standard.
So the "bad block detected" message seems to be a hint that some sort
of data corruption is happening on the IDE interface during UDMA data
transfers with the HDD. With UDMA capable disks it apparently does
not mean "the disk drive is dying".
I went to search what could cause a hardware datacorruption on my system and found that my internal removeable disktray was making bad contact.
After replacement everything worked as expected. -
Solaris Dev 11 and Bind version
I tried to load Sol 10 on IBM and it was no go, loaded 11 Dev no problem except I had to also add the Broadcom drivers to get the NICS up.
I think that 10 and 11 use BIND 9, but I have been told that I must use BIND 8 for my project.
Any info on how to go from BIND 9 to BIND 8 on Sol 11 Dev edition would be appreciated.
ThanksOK, the reason we had to stay at 8 has to do with rrset fixed not working in 9, until now, evidently it is now working in BIND 9.4.1
So I am using Solaris Express 11, it has BIND 9.3.4, I went to freesunware and got there pkgadd version of BIND 9.4.1, I did pkgadd and it placed a lot of files in /usr/local
I checked named -v and 9.3.4 is running right now for nslookup type dns client functions (so the web surfing will work for example)
I need to actually setup a DNS server, I did not try on 9.3.4 but it is on the machine by default.
What do I now need to do to get 9.3.4 off this machine (or at least disabled) and to get 9.4.1 up and running on this machine.
I have files from our other server that I am replacing like named.conf and a db that I will also be adding so I can get this thing ready to field and replace the old machine.
But first, what do I do to disable the old BIND and get the new version in /usr/local up and running.
Thanks -
Hello
I have a 80gb hard disk set up with win xp pro along
with a 25gb unformated partition. Recently I installed
solaris 10 x86 to the 25gb partition from sun's
website. the installation setup automatically selected
the 25 gb space. all seemed to be working fine. the
only problem was after installation solaris boot
manager selected solaris automatically if no selection
of win xp was made within 30 seconds. since i needed
xp pro as a default i used the utility OSBS (boot.exe
and osbs135). as instructed i have entered the saved
solaris.bin from mbr to xp root and have entered
corresponding entry in win.ini file. the new boot
manager enables xp selection by default, xp pro boots
all fine but if i select solaris nothing happens
except a blinking cursor.
It seems to me that solaris partition is all fine and
healthy as I added few packages from solaris
installation cd few days back. Only problem is i m
unable to boot from it with the OSBS boot manager.
Is this a known problem?? or is there any better boot
manager?
Any advice/suggestion will be highly appreciated.
Many thanksHi, I am not sure if this would work but it might. First of all do you know if you delete the solaris partition then wouldn't it go back to booting to Windows? Just wondering about that. Well anyways here is my proposed solution that enables booting Solaris from Windows XP boot menu. Actually wait do you have a floppy drive on your laptop or a portable one. Because this solution requires that. Reply if you have one.
-
I have a palm M505 with a wireless lan jacket. The networking was fine with solaris 7,8 and 9 but fails under Solaris 10.
Every now and again the tcp packets seem to get stuck in a loop. see snoop log. any ideas (It's definately related to Sol 10 as the same operation still works on earlier releases.
using build 69 at moment.
This repeats forever!
Freshfields is the Sol10 box
freshfields -> fresh-11 TCP D=43481 S=3128 Ack=2660256227 Seq=291580582 Len=0 Win=49312
fresh-11 -> freshfields TCP D=3128 S=43481 Ack=291580658 Seq=2660256227 Len=0 Win=804
freshfields -> fresh-11 TCP D=43481 S=3128 Ack=2660256227 Seq=291580582 Len=0 Win=49312
fresh-11 -> freshfields TCP D=3128 S=43481 Ack=291580658 Seq=2660256227 Len=0 Win=804I have a palm M505 with a wireless lan jacket. The networking was fine with solaris 7,8 and 9 but fails under Solaris 10.
Every now and again the tcp packets seem to get stuck in a loop. see snoop log. any ideas (It's definately related to Sol 10 as the same operation still works on earlier releases.
using build 69 at moment.
This repeats forever!
Freshfields is the Sol10 box
freshfields -> fresh-11 TCP D=43481 S=3128 Ack=2660256227 Seq=291580582 Len=0 Win=49312
fresh-11 -> freshfields TCP D=3128 S=43481 Ack=291580658 Seq=2660256227 Len=0 Win=804
freshfields -> fresh-11 TCP D=43481 S=3128 Ack=2660256227 Seq=291580582 Len=0 Win=49312
fresh-11 -> freshfields TCP D=3128 S=43481 Ack=291580658 Seq=2660256227 Len=0 Win=804 -
/dev/poll with libevent problem Please help me!!!
libevent compiled fine, but not worked.
When i run "make verify" i got reply:
cd ./test && make verify
Running tests:
KQUEUE
Skipping test
DEVPOLL
test-eof: [warn] ioctl: DP_POLL: Invalid argument
FAILED
test-weof: [warn] ioctl: DP_POLL: Invalid argument
FAILED
test-time: [warn] ioctl: DP_POLL: Invalid argument
FAILED
regress: [warn] ioctl: DP_POLL: Invalid argument
FAILED
POLL
test-eof: OKAY
test-weof: OKAY
test-time: OKAY
regress: OKAY
SELECT
test-eof: OKAY
test-weof: OKAY
test-time: OKAY
regress: OKAY
RTSIG
Skipping test
EPOLL
Skipping test
Answer on uname -a
SunOS gamesys01 5.10 Generic_118822-02 sun4u sparc SUNW,Sun-Fire-V490
I am trying to compile libevent v1.0, v1.0c, v1.1, v1.1a with some effect. Please help me. Oua project did not work without memcached who using libevent. How can i solve this problem?I am already find cure for this problem. It is here: http://forum.sun.com/thread.jspa?forumID=272&threadID=26396
-
Patchset 8.1.7.1 doesn't address bug 1482140 re:EJB - Solaris
I noticed that patchset 8.1.7.l was posted recently to Metalink. However, the JDeveloper Release Notes indicate that this patchset should include a fix for the bug thay prevents JDeveloper from deploying EJBs to Solaris (1482140). However the Patchset README indicates that this bug is not addressed. Furthermore, it indicates that no changes were made to JServer in this pathcset. Any idea from the JDev team when we may see these bugs addressed?
Matt / Alla
Re your posting ...
the bug number we were talking about was 1482140, and your link points to for bug #1481972. It is the same?
as you can imagine we've had a few "bugs" file on this issue !!
Here is what i just verified :
the howto/workaround entitled "Deploying Business Components as an EJB to Oracle 8.1.7 on Solaris" refers to Bug No. 1481972 can be found at :
http://technet.oracle.com/docs/products/jdev/workarounds/jdev32/ejb817.html
I just checked the internal system and saw that it is linked to the "Base Bug" 1482140 which is referred to in the jdev 3.2 release notes.
you also asked :
When iAS 1.0.2.1 is out?
the best place to ask that question would be the "Oracle9i Application Server" forum located at :
http://technet.oracle.com:89/cgi-bin/forumdisplay.cgi?action=topics&forum=Oracle9i+Application+Server&number=75&DaysPrune=20&LastLogin=
it does get confusing -- doesn't it ??
don
null -
Bind 9 DNS Server chroot cannot work on Solaris 10 u6 and u7
My Old verion "Solaris 10 x86 Generic_Patch_118844-30" can be run "Bind 9 DNS Server" in chroot mode.
And this is no any problem.
I have been try to use "Bind 9 DNS Server" in Solairs 10 x86 u6 or u7.
The result is not any problem.
But when I turn it run in the chroot mode. the "Bind 9 DNS Server" cannot run.
I have been manuelly run the named:-
/usr/sbin/named -c /etc/named.conf -t /chroot/dns -u named -f -g
The respond is :-
13-May-2009 02:17:46.623 starting BIND 9.3.6-P1 -c /etc/named.conf -t /chroot/dns -u named -f -g
13-May-2009 02:17:46.624 found 1 CPU, using 1 worker thread
13-May-2009 02:17:46.627 socket.c:3259: unexpected error:
13-May-2009 02:17:46.627 open(/dev/poll) failed: No such file or directory
13-May-2009 02:17:46.628 ./main.c:495: unexpected error:
13-May-2009 02:17:46.628 isc_socketmgr_create() failed: file not found
13-May-2009 02:17:46.629 create_managers() failed: unexpected error
13-May-2009 02:17:46.629 exiting (due to early fatal error)
Look like the bind 9 runing in the chroot mode after that cannot find /dev/poll
Even I use Bind 9 version 9.6.0, the result is same.
So, I don't sure the problem are the Bind 9 or Solaris 10 u6/u7
I try to continous install New verion Bind 9 in my old version Solaris 10.
THE Result is NO ANY PROBLEM in old version Solaris 10.
And I already bypass the SMF problem.
Anyone can tell me what the problem in solaris 10 u6/u7?Looks like something reported similar bug:
[BIND fails to start|http://bugs.opensolaris.org/view_bug.do%3Bjsessionid=376e1152f0ddc75829ed1725542e?bug_id=6799867]
but I am somewhat puzzled why there is no follow up on the bug fixing.
Ok, I found the source (may be?):
From named:
http://src.opensolaris.org/source/xref/sfw/usr/src/cmd/bind/bind-9.3.6-P1/bin/named/main.c
462 static isc_result_t
463 create_managers(void) {
464 isc_result_t result;
465 unsigned int socks;
466
467 #ifdef ISC_PLATFORM_USETHREADS
468 if (ns_g_cpus == 0)
469 ns_g_cpus = ns_g_cpus_detected;
470 isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL, NS_LOGMODULE_SERVER,
471 ISC_LOG_INFO, "found %u CPU%s, using %u worker thread%s",
472 ns_g_cpus_detected, ns_g_cpus_detected == 1 ? "" : "s",
473 ns_g_cpus, ns_g_cpus == 1 ? "" : "s");
474 #else
475 ns_g_cpus = 1;
476 #endif
477 result = isc_taskmgr_create(ns_g_mctx, ns_g_cpus, 0, &ns_g_taskmgr);
478 if (result != ISC_R_SUCCESS) {
479 UNEXPECTED_ERROR(__FILE__, __LINE__,
480 "isc_taskmgr_create() failed: %s",
481 isc_result_totext(result));
482 return (ISC_R_UNEXPECTED);
483 }
484
485 result = isc_timermgr_create(ns_g_mctx, &ns_g_timermgr);
486 if (result != ISC_R_SUCCESS) {
487 UNEXPECTED_ERROR(__FILE__, __LINE__,
488 "isc_timermgr_create() failed: %s",
489 isc_result_totext(result));
490 return (ISC_R_UNEXPECTED);
491 }
492
493 result = isc_socketmgr_create2(ns_g_mctx, &ns_g_socketmgr, maxsocks);===========================> here. (notice the error message and the actual function called are not the same).
494 if (result != ISC_R_SUCCESS) {
495 UNEXPECTED_ERROR(__FILE__, __LINE__,
496 "isc_socketmgr_create() failed: %s",
497 isc_result_totext(result));
498 return (ISC_R_UNEXPECTED);
499 }
500 result = isc_socketmgr_getmaxsockets(ns_g_socketmgr, &socks);
501 if (result == ISC_R_SUCCESS) {
502 isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,
503 NS_LOGMODULE_SERVER,
504 ISC_LOG_INFO, "using up to %u sockets", socks);
505 }
506
507 result = isc_entropy_create(ns_g_mctx, &ns_g_entropy);
508 if (result != ISC_R_SUCCESS) {
509 UNEXPECTED_ERROR(__FILE__, __LINE__,
510 "isc_entropy_create() failed: %s",
511 isc_result_totext(result));
512 return (ISC_R_UNEXPECTED);
513 }
514
515 result = isc_hash_create(ns_g_mctx, ns_g_entropy, DNS_NAME_MAXWIRE);
516 if (result != ISC_R_SUCCESS) {
517 UNEXPECTED_ERROR(__FILE__, __LINE__,
518 "isc_hash_create() failed: %s",
519 isc_result_totext(result));
520 return (ISC_R_UNEXPECTED);
521 }
522
523 return (ISC_R_SUCCESS);
524 }And in isc_socketmgr_create2():
3384 isc_result_t
3385 isc_socketmgr_create2(isc_mem_t *mctx, isc_socketmgr_t **managerp,
3386 unsigned int maxsocks)
3387 {
<SNIP>
3488
3489 /*
3490 * Set up initial state for the select loop
3491 */
3492 result = setup_watcher(mctx, manager);===============================>will call open() on /dev/poll.
3493 if (result != ISC_R_SUCCESS)
3494 goto cleanup;
3495 memset(manager->fdstate, 0, manager->maxsocks * sizeof(int));
Other the above, I cannot really understand or help further. But I know it should fail in somewhere in setup_watcher() in socket.c. -
Solaris 8 installed-no printer or internet access??
I have installed Solaris 8 OS on intel architecture and finally it works---except for printer and internet access. I found the add printer window but don't know what port it's on??? How do I get printer to work(canon bjc2100)Also have installed network card since S8 OS installation but can't access internet----how please???
Thank you in advance for any help you can give.The parallel port should be something like <tt>/dev/lp1</tt> (old
device name), or
<tt>/dev/printers/0</tt> (newer device name, I think this appeared
when solaris 8 started to support USB printers). Do you see such
devices on your system?
If these devices do not exist:
Interrupt the boot process with ESC to enter the "Device
configuration assistant" (DCA), do you see the parallel port listed in the hardware list on the second screen?
If the parallel port hardware is listed in the DCA, continue booting,
and boot with the kernel with the "-r" flag. The "-r" performs a
"reconfiguration boot" and the /dev/lp* or /dev/printers/* devices
should be created.
If the printer port is listed in the DCA hardware list,
and the reconfiguration boot did <b>not</b> create the unix
printer devices, and the command <tt>prtconf -Dv | grep lp</tt>
does not print <tt>lp (driver name: lp)</tt>, you may be running
into the solaris 8 ACPI bug (bug id 4344312). This bug results in
non-working on board hardware when using certain combinations of
main boards and bios versions; often seen on boards using VIA
south bridge chipsets. In that case have a look at http://www.tools.de/solaris/via/ for a possible solution.
Maybe you are looking for
-
Cinema Display (A1081) Wont Work with NEW 2011 Mac Mini
Cinema display (A1081) woks fine with 2006 Mac Mini (has a DVI Connector on back) However same display does NOT work on mac mini 2011 (using Apples HDMI to DVI cable provided) It shows in the ABOUT Displays, but seems to not get a signal from the min
-
HT201342 How do I change the default e-mail in ical for e-mail notifications?
My ical e-mail notifications are set up to my .mac account, but I need to change it to icloud address, as I'm getting errors when it tries to send e-mail notifications to the @mac.com address. But I can't figure out how to change the e-mail address.
-
when i open itunes its normal and then out of nowhere it says "itunes has stopped working" and i have to click 'close program'. help?
-
Hi guyz, Is it possible in put validation for costing version in the t-code CK40N and CK22? Or Anybody aware of any user exit for the same?
-
Start button is disabled at info package
I have crreated a background job in SM36 to trigger an infopackage. I have added the event and parameter in the infopackage. But when I tried to execute the background job, the infopackage is not executing and the start button is disabled there. Then