什么是 Fpolicy EAGAIN 错误?何时发生?
适用场景
ONTAP 9
问题解答
如果为 LIF 与 fpolicy 服务器之间的特定 TCP 会话分配的发送或接收缓冲区已满,并且不再为发送请求或接收响应留出空间,则会发生 EAGAIN 错误。当请求得到响应或 ONTAP 从缓冲区中提取响应时,缓冲区将处于空闲状态。发生 EAGAIN 时,系统会将该 SVM 的倒带行为触发到该 fpolicy 服务器,具体取决于 ONTAP 的版本,此倒带 / 延迟行为可能会有所不同。
- 未修复错误 1372994 的版本:
- ONTAP 会将该 TCP 会话上的 fpolicy 请求暂停 2 秒,然后在恢复时开始发送排队等待的请求。
- 已修复错误 1372994 的版本:
- 对于第一次尝试, ONTAP 将在 1 毫秒后重试此请求。如果同一请求发生另一个 EAGAINK ,则 ONTAP 将继续每 100 毫秒重试一次,最长持续 2 秒,如果在超时之前无法将此请求添加到缓冲区,则会关闭此套接字。如果可以在断开连接之前将此请求添加到缓冲区,则在下次出现 EAGAIN 时,此过程将恢复为 1 毫秒延迟计时器。
错误示例:
- EMS 或
event log show
:
[filer1: fpolicy: fpolicy.eagain.on.write:notice]: Write returned EAGAIN while sending notification to the FPolicy server "1.2.3.4" for vserver ID 3.
-
fpolicy-mlogs :
Fpolicy.log reports errors pertaining to EAGAIN errors similar to the following:
[kern_fpolicy:error:1552] Write returned EAGAIN[35] [0x0x80c408d00] src/fsm/fsm_external_engine.cc:864
错误1479704的修复版本已将行为扩展到上述流程。
- 如果流量已满且发生断开连接、则会启动2分钟计时器。
- 如果在2分钟计时器内因EAGAIN而断开4次连接、则FPolicy服务器将永久断开连接、并触发EMS事件。
-
EMS详细信息:fpolicy.eagain事件
-