Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

if nvmeOF target does not exist, jNVMf will hand there instead report correct error then quit #22

Closed
gwnet opened this issue Dec 4, 2019 · 3 comments

Comments

@gwnet
Copy link

gwnet commented Dec 4, 2019

  1. make sure IP and RDMA network is OK. but does not setup nvme target.
    2, run benchmark with below steps

then the application will hang at below code: at the endpoint.connect part. it will hang, never return.

FabricsConnectResponseCqe connect(long timeout, TimeUnit timeoutUnit) throws IOException {
NativeBuffer buffer = new NativeByteBuffer(
ByteBuffer.allocateDirect(RdmaCmRequestPrivateData.SIZE));
RdmaCmRequestPrivateData privateData = new RdmaCmRequestPrivateData(buffer);
privateData.setQueueId(queueId);
privateData.setRdmaQpReceiveQueueSize(submissionQueueSize);
privateData.setRdmaQpSendQueueSize((short) (submissionQueueSize - 1));
this.endpoint.getConnParam().setPrivate_data(buffer.getAddress());
this.endpoint.getConnParam().setPrivate_data_len((byte) RdmaCmRequestPrivateData.SIZE);
InetSocketAddress socketAddress = controller.getTransportId().getAddress();
try {
//FIXME: rejected requests are not handled by DiSNI
//FIXME: check for overflow
endpoint.connect(socketAddress, (int)TimeUnit.MILLISECONDS.convert(timeout, timeoutUnit));
} catch (Exception exception) {
throw new IOException(exception);
}

Cadmin@ogden-dirt:/tmp/wayne/jNVMf> java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8089 -cp target/jnvmf-1.7-jar-with-dependencies.jar:target/jnvm1.7-tests.jar -Djnvmf.legacy=true com.ibm.jnvmf.utils.NvmfClientBenchmark -a 192.168.219.3 -p 4420 -g 4096 -i 3 -m RANDOM -n 10 -nqn nqn.2019-12.com.wayne:test -qd 1 -rw read -s 4096 -qs 64 -H -I
Listening for transport dt_socket at address: 8089
Name:abc
abc
read 4096bytes with QD = 1, time[s] = 3, pattern = RANDOM, runs = 10
log4j:WARN No appenders could be found for logger (com.ibm.disni).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

@PepperJo
Copy link
Contributor

PepperJo commented Dec 4, 2019

It will after the timeout. Reduce the timeout if you want it to happen earlier. Otherwise if that does not work open a ticket in the Disni repository.

@PepperJo
Copy link
Contributor

PepperJo commented Dec 4, 2019

BTW you can set the timeout with Controller.connect there is an overload which allows you to set it: https://github.com/zrlio/jNVMf/blob/master/src/main/java/com/ibm/jnvmf/Nvme.java

@gwnet
Copy link
Author

gwnet commented Dec 4, 2019

got it. thank you so much!~, timeout is Ok so far. I will see if we need fail immediately later. can you help raise ticket on libdisni?

@PepperJo PepperJo closed this as completed Dec 9, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants