-
Notifications
You must be signed in to change notification settings - Fork 23
Erroneous Timeout: IOP00410037: Timeout while reading data in buffer manager #6
Comments
Reported by wigun |
wigun said:
|
wigun said: "A thread can also wake up without being notified, interrupted, or timing out, a so-called spurious wakeup. While this will rarely occur in practice, applications must guard against it by testing for the condition that should have caused the thread to be awakened, and continuing to wait if the condition is not satisfied." |
wigun said:
|
jthoennes said: Sporadically, the download fails with the above error message. See also the old bug GLASSFISH-2872 were Ken Cavanaugh fixed an issue by guarding against such thread wakeups. So please: Any answer from development here? |
boernd said: Regards |
cwolf77 said: Thx |
ebratt said: |
alfredo_5869 said: Thanks! |
This issue was imported from java.net JIRA GLASSFISH_CORBA-6 |
Hello. Did the development team decide how to fix this issue? |
Closing this as this issue is migrated to eclipse-ee4j/orb#6 |
Sporadic error when transferring large byte arrays (e.g. 10 MB)
Bug is "com.sun.corba.ee.impl.encoding.BufferManagerReadStream.java"
The "underflow" method the "fragmentQueue.wait(orb.getORBData().fragmentReadTimeout())" returns unexplainable,
but it is NOT the due to the timeout, since it returnes after some milliseconds.
It looks like it get's notified without having the "fragmentQueue" properly enqueued, which I cannot explain.
So there is this "IOP00410037: Timeout while reading data in buffer manager",
but it is definitely no time out, also because it is thrown after some milliseconds, and this time out actually is 18 seconds.
This can be easily reproduced with the following very simple test.
It takes about a couple hundred tries (might take some minutes) until I get this error.
Even when client and server run on the same machine.
package de.test.client;
import javax.naming.Context;
import javax.naming.InitialContext;
import de.test.service.remote.TimeoutTestService;
public class TimeoutTestClient {
private static int tryNumber = 0;
private static boolean running = true;
public static void main(String[] args) throws Exception {
Context initialContext = new InitialContext();
TimeoutTestService timeoutTestService = (TimeoutTestService) initialContext.lookup(TimeoutTestService.class.getName());
long startTime = 0;
while (running) {
try
{ tryNumber++; startTime = System.currentTimeMillis(); timeoutTestService.getBytes(10000000); }
catch (Exception e)
{ System.out.println("Error occured at try number: " + tryNumber + " after " + (System.currentTimeMillis() - startTime) + " millis"); e.printStackTrace(); running = false; }
}
}
}
package de.test.service.remote;
import javax.ejb.Remote;
@Remote
public interface TimeoutTestService {
byte[] getBytes(int size);
}
package de.test;
import javax.ejb.Stateless;
import de.test.service.remote.TimeoutTestService;
@stateless
public class TimeoutTestServiceBean implements TimeoutTestService {
public byte[] getBytes(int size) {
byte[] bytes = new byte[size];
for (int i = 0; i < bytes.length; i++)
{ bytes[i] = 0x42; }
return bytes;
}
}
Environment
Windows 7, Glassfish 3.1, jdk1.6.0_26
Affected Versions
[current]
The text was updated successfully, but these errors were encountered: