This patch add check method to wait for the DB process in xcatd.
Enhance the close method in Table.pm to disable the undef operation
for nodelist in DB process as the reference has already been cached
as a weak reference.
close-issue: #1011
Currently INT signal and USR2 signal are sent to stop the monitor
process at the same time, just keep USR2 as the stop signal in this
patch.
Close-issue: #972
Although handshake between parent and child process fails
due to the heavy IO loading, the message received by parent
process is complete as the block operation is used.
This change includes the following:
- Replace the signal number with signal name.
- Stop db process after all the immediate children stopped.
- Fix a defect in TableUtils when closing the table object.
- Enhance the is_process_exists subroutine in utils.
Close issue: #537
The root cause of this issue is the select time out when polling the
pipe socket. When timeout occurs, child process exit before printing
the message at the parent process side.
close-issue: #729
Currently the getadapter implementation store the nics information
in multiple files. This implementaion will store the records in the
database and add the following changes:
1. Add taskstate table to record the getadapter request.
2. Add route_request hook in xcatd to avoid of too much process.
3. Add adapterinfo column to keep the adapter information.
4. Use fifo pipe to send/recv the adapter message and wake up the waiting process.
5. Use alarm signal to handle the timeout event.
Previously, every TLS connection caused a communication with UDP
and this was bad. Then every UDP connection caused a communication
and this was better. This takes things a little further by only
doing the communication if there is a known interested party now.
The fudge factor is now decremented according to real number of clients counted
toward sslclient count. Also, have the overload case break into flow control
communication as well (though it wouldn't have a good answer for an interested client)
Because SSL actually was relying upon accept() to hold indefininetly,
it would hang up the UDP worker indefinitely, blocking requests.
Fix this by driving the loop iteration through select() rather than
accept() and iterating through each file handle only when select()
says they are ready.
If the UDP monitor was busy, the SSL connections could back up.
Rework it so that the UDP monitor would get hung up by the SSL
process instead, if *any* of them get backed up. However, the
nature of the loop in the SSL client is sufficiently lightweight
that it shouldn't hang up the UDP process under any reasonable
circumstance. If it did hang it up though, it'll be less hung up
than discovery does already.