chaos-mesh / chaos-tproxy

31 stars 15 forks source link

bug: chaos-tproxy-controller does not deserialize `RawFile` properly with `RawFile.Contents` #63

Open STRRL opened 1 year ago

STRRL commented 1 year ago

I am working on this PR: https://github.com/chaos-mesh/chaos-mesh/pull/3956

But I still face some trouble with that chaos-tproxy does not accept the chaos. The log saied:


..
2023-03-10T10:16:44.544Z        INFO    records records/controller.go:118       iterating record        {"record": {"id":"chaos-mesh-6861/http-test-78f645fc9c-42q4d","selectorKey":".","phase":"Not Injected/Wait","injectedCount":0,"recoveredCount":0,"events":[{"type":"Failed","operation":"Apply","message":"failed to apply for pod chaos-mesh-6861/http-test-78f645fc9c-42q4d, status(400): invalid type: string \"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURwVENDQW8yZ0F3SUJBZ0lVUTFuZDdweFNQTFJqOTdXYk1RZTUvNkJqVnJFd0RRWUpLb1pJaHZjTkFRRUwKQlFBd1ZqRUxNQWtHQTFVRUJoTUNRVlV4RXpBUkJnTlZCQWdNQ2xOdmJXVXRVM1JoZEdVeElUQWZCZ05WQkFvTQpHRWx1ZEdWeWJtVjBJRmRwWkdkcGRITWdVSFI1SUV4MFpERVBNQTBHQTFVRUF3d0dZVzVrY21WM01CNFhEVEl6Ck1ETXhNREE1TWpNd01Gb1hEVE16TURNd056QTVNak13TUZvd1ZqRUxNQWtHQTFVRUJoTUNRVlV4RXpBUkJnTlYKQkFnTUNsTnZiV1V0VTNSaGRHVXhJVEFmQmdOVkJBb01HRWx1ZEdWeWJtVjBJRmRwWkdkcGRITWdVSFI1SUV4MApaREVQTUEwR0ExVUVBd3dHWVc1a2NtVjNNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDCkFRRUFuU2dkdWFrQ0ltN2F1TkQ0RTVpTFNjRWJsVFk4YTMzckoxMmdJNFFENXF0WG9LeXo5ZVJoUE5ZUnA3blUKYnVZMmsrdDB3SXlKQ2czRmpaYldrSDRIWTFaTGJBSWJHSnBNeCt5bjZGSzFKb2U1dThUTmhDVkJjaGttT2lCbApaZTNFVThOUitPRWVkM1JpUi8raHFnM2dOYkdMNndJVU9Sak4rM21KZldxQnNsUnZGdVVaVkQ5QmU4bG1ndXZUCkVyQ2ZtcDUyODZkMlFWeE1hOFl2UzdKbmVPbHRTY0NySGJ3d1FvTG9GWS80aFBYMHlXUHNGazVDZjlpMEpzSFMKN0tpaVo5ZzhqbzF2aDBOcWhvWkdFaW9vTTQzQnk1cWwyTEgzQXpKNmJZRzdRZDNNTDBFemlUYWtSU2ZaWXo4cQpaK3RaanVmSzQ4L1VSVVBnV28zQnpWQzI0d0lEQVFBQm8yc3dhVEFmQmdOVkhTTUVHREFXZ0JSVlNZNTJVSFVFCnhLT3VSS1g3MjNTci9YS1JwREFKQmdOVkhSTUVBakFBTUFzR0ExVWREd1FFQXdJRThEQVBCZ05WSFJFRUNEQUcKaHdUQXFERUNNQjBHQTFVZERnUVdCQlNValBQTTREK1Exd1FnZytpMDRENHFhYThzbFRBTkJna3Foa2lHOXcwQgpBUXNGQUFPQ0FRRUFKUExpREdEOFFDcHVXSVVYbkZIa3RwRlEyYmQ5eEZUN3J6a3JwVUV1eFBhcHRNYXB2TS9NCjRLZklKTHhUVDJ3TFRHTEdRdHF3V0xsT00rQlZKNTY2STZidGcrYzlxTlNDazhpSDBvZzZiamE0MVNGL2poSUEKWTFBWFc0ckNFUmlwYXF1bGxPbWltcm1HTFFoNWEyTlp3MHZVUGtrOUhVa3RnTGJYKzRZc25mSnJOajJydFIrTgp3MlVGam1UYUR2ZSt3MlZvZ3dpclB4ZDRLM3RHWjgrYWpuQWZ3RklIUHZPcC9rQTVjWC9ZQlNZZnNXdWgrenVHCng0TU1sMGZVaHoyWGx0Vno2aTd5U1FyWWpTRDYwekt6a0tzUTJQemZrdjVCMGNicTU1c1RCazZ3cm5iK3YycTMKNTk4bUl5S1BNVGFyN1ZIUThIa0FpNkVFMUdzTGMrN2Uzdz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K\", expected a sequence at line 1 column 1994","timestamp":"2023-03-10T09:23:04Z"},{"<....truncated>

We use json rpc to communicate between chaos-tproxy and chaos-daemon, and the JSON serialization in golang would serialize bytes as base64. But serde_json does not use base64 when it deserialize the JSON, which means it cause the problem which mentioned formerly.