久しぶりの記事になります。
Memcachedを使っていて直面した問題で、Google先生に聞いてもなかなか答えにたどり着けなかったので備忘録として残します。
環境としてはUbuntu 16.04でPython3のpython-memcachedとCakePHP3間の通信で起きました。
pythonから書き込んだjsonをCakePHPで読もうとするとタイトルのエラーが出て、まったく読み込めないというものです
ただし、telnetでlocalhostのポート11211につないで確認してみると、python側から書き込んだjsonデータは読めるのです。
ちゃんと書き込めているので、当然PHP側を疑って、CakePHPの設定からPHPのmemcahedエクステンション等までいろいろ見てみたのですが、解決はできませんでした。
そして、原因はPython側のpython-memcahedでした。
解決のきっかけはGithubのこちらのissueでした。
Change in FLAGS set by 1.59 breaks compatibility with earlier python-memcached clients
こちらに入っていたpython-memcachedのバージョンも1.59でした。
ピコーン!
そして早速python-memcachedのバージョンを1.58に落としたところ、見事読み込むことができました。
python-memcachedで書き込んだデータをPHP側で読めない場合がありましたら、python-memcachedのバージョンを調べてみて下さい。