我在Windows 7系统上使用mysql-proxy 0.8.3。
有时,我在日志中得到以下debugging消息:
(debugging)。\ chassis-event-thread.c:254:event-notify-fd中的recv()失败:未知错误
并且mysql-proxy进程开始使用25%的CPU(在一个四核上)直到我杀了它。 当它超载系统时,它继续正确处理查询。
相同的查询/脚本并不总是触发问题。 我完全不知道如何解决这个问题。
我没有与MySQL代理和Windows的经验,但我做了一些调查。 我发现MySQL的代理来源和您的错误logging从这里: http : //bazaar.launchpad.net/~mysql-proxy-developers/mysql-proxy/0.8/view/head :/ src/ chassis-event- thread。 C#L252 (我想2线差异是从源代码格式)。 它看起来像从第238行recv返回E_NET_WOULDBLOCK值。 在第57行有定义(你说你在窗户上)
#define E_NET_WOULDBLOCK WSAEWOULDBLOCK
所以真正的错误是WSAEWOULDBLOCK。 search它我发现: https : //stackoverflow.com/a/14549541
WSAEWOULDBLOCK不是一个真正的错误,而是简单地告诉你发送缓冲区已满。 如果您使networking饱和,或者另一方根本不确认收到的数据,就会发生这种情况。
我想这是在mysql代理错误。 它可能会陷入无限循环试图recv从忙/空/死(这就是为什么100%的CPU使用率)的sockets。 也许你可以尝试从主版本(我不知道是否有一个Windows版本)?