との非常に厄介なクラッシュStackExchange.Redis
SetAdd(key, val)
。
プログラムの GUID をキーにセットを設定したい。
(3 時間のデバッグ後)SetAdd(key, val)
一部の GUID で動作することがわかりましたが、他の GUID ではクラッシュします。
string key = "02639d71-0935-35e8-9d1b-9dd1a2a34629";
const string val = "somevalue";
db.SetAdd(key, val); // <=== Works
key = "02639d71-0935-35e8-9d1b-9dd1a2a34627";
db.SetAdd(key, val); // <=== CRASH @@!!@!@!
違いは最後の文字「9」対「7」
SetAdd
ローカル GUID をキーとして使用できませんか?
環境: C# .NET 4 Win 8.1 VS2013
クラッシュ メッセージ:
An unhandled exception of type 'StackExchange.Redis.RedisServerException' occurred in StackExchange.Redis.dll
Additional information: WRONGTYPE Operation against a key holding the wrong kind of value
クラッシュポイントStackExchange.Redis
...
このコードを LINQPad でテストしました。同じところに落ちます。最初の GUID は機能しますが、2 番目の GUID は機能しません。
クラッシュはこれが原因ではなく、開始アプリの GUID であると思われます。
異なる GUID でさらにテストします。「7」で終わるものだけがクラッシュします。
key = "02639d71-0935-35e8-9d1b-9dd1a2a34622";
key = "02639d71-0935-35e8-9d1b-9dd1a2a34623";
key = "02639d71-0935-35e8-9d1b-9dd1a2a34624";
key = "02639d71-0935-35e8-9d1b-9dd1a2a34625";
key = "02639d71-0935-35e8-9d1b-9dd1a2a34626";
key = "02639d71-0935-35e8-9d1b-9dd1a2a34627"; // <= crashes
key = "02639d71-0935-35e8-9d1b-9dd1a2a34628";
key = "02639d71-0935-35e8-9d1b-9dd1a2a34629";
...
KeyExists
、 StringIncrement
、StringSet
key = my GUID でうまく機能します。