Hi Nausca,
Sorry for the slow response. I'll summarize your e-mail for
Kapil, who is our specialist in this area.
Kapil,
You had implemented the ipc plugin. Nausca is proposing an
alternative strategy for registering new socket file descriptors
in our SocketConnList.:
Register the socket ID directly in the select/poll function call?
1. Every time a user calls select, DMTCP can check if the selected id
is already a registered connection within DMTCP.
2. If it wasn't previously registered, then register it within
the select/poll function call.
The motivation follows:
There is a DMTCP wrapper for connect():
src/plugin/ipc/socket/socketwrappers.cpp:connect(sockfdi, ...)
In that wrapper, if real_connect() fails, then it tries again
for 15 seconds:by calling select([sockfd]). If select()
succeeds, then getsockopt() is tried. If that succeeds,
then sockfd is added to the SocketConnList.
Otherwise, we assume that the user tried to connect to a
non-existent socket, and we don't register sockfd.
The problem with this is that the user may have their
own backup strategy using poll() or select(). So, DMTCP may
fail to register sockfd(), and yet later, the user's call to
select() may discover a valid sockfd.
For this reason, Nausca is proposing to add logic into the DMTCP
wrapper around select() (and poll()) so that if the user discovers
a valid sockfd, DMTCP will also see this, and DMTCP will register
the sockfd in the SocketConnList.
Nausca,
Did I summarize the issue correctly?
Best,
- Gene
On Wed, Jan 13, 2016 at 07:29:39AM +0000, Nausca Hsu wrote:
> Hi,
> I have been reviewing the ipc plugin package.
> I found that in the connect function,
> Dmtcp will select the socket to ensure it is a valid socket or not(by select
> call),
> And then register it as a valid connect in connectlist class
> This behavior is kind of an error handling,
> User application may have their own error handling.
> If the select fail and dmtcp did not register after 15 seconds,
> And user decide to poll or select(by their default error handling), and
> finally get a valid socket ID,
> Then dmtcp will have a missing connection.
>
> Do you consider register the socket ID in select/poll function call?
> Every time user call a select, dmtcp check if the selected id is a registered
> connection,
> If not->register it.
>
> Thanks.
> Nausca.
>
> ------------------------------------------------------------------------------
> Site24x7 APM Insight: Get Deep Visibility into Application Performance
> APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
> Monitor end-to-end web transactions and take corrective actions now
> Troubleshoot faster and improve end-user experience. Signup Now!
> http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140
> _______________________________________________
> Dmtcp-forum mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/dmtcp-forum
------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140
_______________________________________________
Dmtcp-forum mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dmtcp-forum