[Pkg-iscsi-maintainers] [open-iscsi] 41/48: iscsid: Fix handling of iscsi async events.
Ritesh Raj Sarraf
rrs at moszumanska.debian.org
Wed Aug 20 13:54:14 UTC 2014
This is an automated email from the git hooks/post-receive script.
rrs pushed a commit to branch upstream-mnc
in repository open-iscsi.
commit 36a8b41de43749d91dfd52f9c8ad4a454c9a8f15
Author: Mike Christie <michaelc at cs.wisc.edu>
Date: Fri Mar 14 01:41:29 2014 -0500
iscsid: Fix handling of iscsi async events.
When iscsi targets send 32 or more iscsi async event pdus the
initiator will run out of memory for events and this message:
BUG: iscsid: Can not allocate memory for receive context.
will be logged non stop. iscsid will then not be able to
complate any more requests because it is stuck in a endless loop
printing that message.
This fixes the problem by having iscsid handle an event after it
has read it in from netlink or the mgmt ipc. Previously we would
queue all events then handle them.
---
usr/event_poll.c | 5 ++++-
usr/netlink.c | 2 +-
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/usr/event_poll.c b/usr/event_poll.c
index f36fec1..939f1a2 100644
--- a/usr/event_poll.c
+++ b/usr/event_poll.c
@@ -165,8 +165,11 @@ void event_loop(struct iscsi_ipc *ipc, int control_fd, int mgmt_ipc_fd)
"exiting", res, errno);
break;
}
- } else
+ }
+
+ if (res >= 0)
actor_poll();
+
reap_proc();
/*
* flush sysfs cache since kernel objs may
diff --git a/usr/netlink.c b/usr/netlink.c
index 1c4b5cc..532d9ef 100644
--- a/usr/netlink.c
+++ b/usr/netlink.c
@@ -1615,8 +1615,8 @@ static int ctldev_handle(void)
ev_context = ipc_ev_clbk->get_ev_context(conn, ev_size);
if (!ev_context) {
- /* retry later */
log_error("Can not allocate memory for receive context.");
+ drop_data(nlh);
return -ENOMEM;
}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-iscsi/open-iscsi.git
More information about the Pkg-iscsi-maintainers
mailing list