Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Got "fatal runtime error: stack overflow" when the schema in Confluent Schema Registry is big #121

Open
hongbo-miao opened this issue Oct 29, 2024 · 3 comments

Comments

@hongbo-miao
Copy link
Contributor

hongbo-miao commented Oct 29, 2024

Describe the bug

When the protobuf schema in Confluent Schema is big, based on my debugging, this step

        let proto_payload = encoder
            .encode(
                &buf,
                "production.iot.Motor",
                SubjectNameStrategy::TopicNameStrategy(topic.to_string(), false),
            )
            .await
            .expect("Failed to encode with schema registry");

will cause the app fail with error:

thread 'main' has overflowed its stack
fatal runtime error: stack overflow

To Reproduce

  1. Download the producer code at https://github.com/hongbo-miao/hongbomiao.com/tree/c60ab834456279df00ec55b1e2c7a245df82e277/hm-kafka/kafka-client/kafka-rust/proto-producer

  2. Change to 500 temperature fields for Motor in main.rs file:

Click to expand!
  Motor {
      motor_id: Some(motor_id.to_string()),
      timestamp: Some(Utc::now().to_rfc3339()),
      temperature1: Some(temperature),
      temperature2: Some(temperature),
      temperature3: Some(temperature),
      temperature4: Some(temperature),
      temperature5: Some(temperature),
      temperature6: Some(temperature),
      temperature7: Some(temperature),
      temperature8: Some(temperature),
      temperature9: Some(temperature),
      temperature10: Some(temperature),
      temperature11: Some(temperature),
      temperature12: Some(temperature),
      temperature13: Some(temperature),
      temperature14: Some(temperature),
      temperature15: Some(temperature),
      temperature16: Some(temperature),
      temperature17: Some(temperature),
      temperature18: Some(temperature),
      temperature19: Some(temperature),
      temperature20: Some(temperature),
      temperature21: Some(temperature),
      temperature22: Some(temperature),
      temperature23: Some(temperature),
      temperature24: Some(temperature),
      temperature25: Some(temperature),
      temperature26: Some(temperature),
      temperature27: Some(temperature),
      temperature28: Some(temperature),
      temperature29: Some(temperature),
      temperature30: Some(temperature),
      temperature31: Some(temperature),
      temperature32: Some(temperature),
      temperature33: Some(temperature),
      temperature34: Some(temperature),
      temperature35: Some(temperature),
      temperature36: Some(temperature),
      temperature37: Some(temperature),
      temperature38: Some(temperature),
      temperature39: Some(temperature),
      temperature40: Some(temperature),
      temperature41: Some(temperature),
      temperature42: Some(temperature),
      temperature43: Some(temperature),
      temperature44: Some(temperature),
      temperature45: Some(temperature),
      temperature46: Some(temperature),
      temperature47: Some(temperature),
      temperature48: Some(temperature),
      temperature49: Some(temperature),
      temperature50: Some(temperature),
      temperature51: Some(temperature),
      temperature52: Some(temperature),
      temperature53: Some(temperature),
      temperature54: Some(temperature),
      temperature55: Some(temperature),
      temperature56: Some(temperature),
      temperature57: Some(temperature),
      temperature58: Some(temperature),
      temperature59: Some(temperature),
      temperature60: Some(temperature),
      temperature61: Some(temperature),
      temperature62: Some(temperature),
      temperature63: Some(temperature),
      temperature64: Some(temperature),
      temperature65: Some(temperature),
      temperature66: Some(temperature),
      temperature67: Some(temperature),
      temperature68: Some(temperature),
      temperature69: Some(temperature),
      temperature70: Some(temperature),
      temperature71: Some(temperature),
      temperature72: Some(temperature),
      temperature73: Some(temperature),
      temperature74: Some(temperature),
      temperature75: Some(temperature),
      temperature76: Some(temperature),
      temperature77: Some(temperature),
      temperature78: Some(temperature),
      temperature79: Some(temperature),
      temperature80: Some(temperature),
      temperature81: Some(temperature),
      temperature82: Some(temperature),
      temperature83: Some(temperature),
      temperature84: Some(temperature),
      temperature85: Some(temperature),
      temperature86: Some(temperature),
      temperature87: Some(temperature),
      temperature88: Some(temperature),
      temperature89: Some(temperature),
      temperature90: Some(temperature),
      temperature91: Some(temperature),
      temperature92: Some(temperature),
      temperature93: Some(temperature),
      temperature94: Some(temperature),
      temperature95: Some(temperature),
      temperature96: Some(temperature),
      temperature97: Some(temperature),
      temperature98: Some(temperature),
      temperature99: Some(temperature),
      temperature100: Some(temperature),
      temperature101: Some(temperature),
      temperature102: Some(temperature),
      temperature103: Some(temperature),
      temperature104: Some(temperature),
      temperature105: Some(temperature),
      temperature106: Some(temperature),
      temperature107: Some(temperature),
      temperature108: Some(temperature),
      temperature109: Some(temperature),
      temperature110: Some(temperature),
      temperature111: Some(temperature),
      temperature112: Some(temperature),
      temperature113: Some(temperature),
      temperature114: Some(temperature),
      temperature115: Some(temperature),
      temperature116: Some(temperature),
      temperature117: Some(temperature),
      temperature118: Some(temperature),
      temperature119: Some(temperature),
      temperature120: Some(temperature),
      temperature121: Some(temperature),
      temperature122: Some(temperature),
      temperature123: Some(temperature),
      temperature124: Some(temperature),
      temperature125: Some(temperature),
      temperature126: Some(temperature),
      temperature127: Some(temperature),
      temperature128: Some(temperature),
      temperature129: Some(temperature),
      temperature130: Some(temperature),
      temperature131: Some(temperature),
      temperature132: Some(temperature),
      temperature133: Some(temperature),
      temperature134: Some(temperature),
      temperature135: Some(temperature),
      temperature136: Some(temperature),
      temperature137: Some(temperature),
      temperature138: Some(temperature),
      temperature139: Some(temperature),
      temperature140: Some(temperature),
      temperature141: Some(temperature),
      temperature142: Some(temperature),
      temperature143: Some(temperature),
      temperature144: Some(temperature),
      temperature145: Some(temperature),
      temperature146: Some(temperature),
      temperature147: Some(temperature),
      temperature148: Some(temperature),
      temperature149: Some(temperature),
      temperature150: Some(temperature),
      temperature151: Some(temperature),
      temperature152: Some(temperature),
      temperature153: Some(temperature),
      temperature154: Some(temperature),
      temperature155: Some(temperature),
      temperature156: Some(temperature),
      temperature157: Some(temperature),
      temperature158: Some(temperature),
      temperature159: Some(temperature),
      temperature160: Some(temperature),
      temperature161: Some(temperature),
      temperature162: Some(temperature),
      temperature163: Some(temperature),
      temperature164: Some(temperature),
      temperature165: Some(temperature),
      temperature166: Some(temperature),
      temperature167: Some(temperature),
      temperature168: Some(temperature),
      temperature169: Some(temperature),
      temperature170: Some(temperature),
      temperature171: Some(temperature),
      temperature172: Some(temperature),
      temperature173: Some(temperature),
      temperature174: Some(temperature),
      temperature175: Some(temperature),
      temperature176: Some(temperature),
      temperature177: Some(temperature),
      temperature178: Some(temperature),
      temperature179: Some(temperature),
      temperature180: Some(temperature),
      temperature181: Some(temperature),
      temperature182: Some(temperature),
      temperature183: Some(temperature),
      temperature184: Some(temperature),
      temperature185: Some(temperature),
      temperature186: Some(temperature),
      temperature187: Some(temperature),
      temperature188: Some(temperature),
      temperature189: Some(temperature),
      temperature190: Some(temperature),
      temperature191: Some(temperature),
      temperature192: Some(temperature),
      temperature193: Some(temperature),
      temperature194: Some(temperature),
      temperature195: Some(temperature),
      temperature196: Some(temperature),
      temperature197: Some(temperature),
      temperature198: Some(temperature),
      temperature199: Some(temperature),
      temperature200: Some(temperature),
      temperature201: Some(temperature),
      temperature202: Some(temperature),
      temperature203: Some(temperature),
      temperature204: Some(temperature),
      temperature205: Some(temperature),
      temperature206: Some(temperature),
      temperature207: Some(temperature),
      temperature208: Some(temperature),
      temperature209: Some(temperature),
      temperature210: Some(temperature),
      temperature211: Some(temperature),
      temperature212: Some(temperature),
      temperature213: Some(temperature),
      temperature214: Some(temperature),
      temperature215: Some(temperature),
      temperature216: Some(temperature),
      temperature217: Some(temperature),
      temperature218: Some(temperature),
      temperature219: Some(temperature),
      temperature220: Some(temperature),
      temperature221: Some(temperature),
      temperature222: Some(temperature),
      temperature223: Some(temperature),
      temperature224: Some(temperature),
      temperature225: Some(temperature),
      temperature226: Some(temperature),
      temperature227: Some(temperature),
      temperature228: Some(temperature),
      temperature229: Some(temperature),
      temperature230: Some(temperature),
      temperature231: Some(temperature),
      temperature232: Some(temperature),
      temperature233: Some(temperature),
      temperature234: Some(temperature),
      temperature235: Some(temperature),
      temperature236: Some(temperature),
      temperature237: Some(temperature),
      temperature238: Some(temperature),
      temperature239: Some(temperature),
      temperature240: Some(temperature),
      temperature241: Some(temperature),
      temperature242: Some(temperature),
      temperature243: Some(temperature),
      temperature244: Some(temperature),
      temperature245: Some(temperature),
      temperature246: Some(temperature),
      temperature247: Some(temperature),
      temperature248: Some(temperature),
      temperature249: Some(temperature),
      temperature250: Some(temperature),
      temperature251: Some(temperature),
      temperature252: Some(temperature),
      temperature253: Some(temperature),
      temperature254: Some(temperature),
      temperature255: Some(temperature),
      temperature256: Some(temperature),
      temperature257: Some(temperature),
      temperature258: Some(temperature),
      temperature259: Some(temperature),
      temperature260: Some(temperature),
      temperature261: Some(temperature),
      temperature262: Some(temperature),
      temperature263: Some(temperature),
      temperature264: Some(temperature),
      temperature265: Some(temperature),
      temperature266: Some(temperature),
      temperature267: Some(temperature),
      temperature268: Some(temperature),
      temperature269: Some(temperature),
      temperature270: Some(temperature),
      temperature271: Some(temperature),
      temperature272: Some(temperature),
      temperature273: Some(temperature),
      temperature274: Some(temperature),
      temperature275: Some(temperature),
      temperature276: Some(temperature),
      temperature277: Some(temperature),
      temperature278: Some(temperature),
      temperature279: Some(temperature),
      temperature280: Some(temperature),
      temperature281: Some(temperature),
      temperature282: Some(temperature),
      temperature283: Some(temperature),
      temperature284: Some(temperature),
      temperature285: Some(temperature),
      temperature286: Some(temperature),
      temperature287: Some(temperature),
      temperature288: Some(temperature),
      temperature289: Some(temperature),
      temperature290: Some(temperature),
      temperature291: Some(temperature),
      temperature292: Some(temperature),
      temperature293: Some(temperature),
      temperature294: Some(temperature),
      temperature295: Some(temperature),
      temperature296: Some(temperature),
      temperature297: Some(temperature),
      temperature298: Some(temperature),
      temperature299: Some(temperature),
      temperature300: Some(temperature),
      temperature301: Some(temperature),
      temperature302: Some(temperature),
      temperature303: Some(temperature),
      temperature304: Some(temperature),
      temperature305: Some(temperature),
      temperature306: Some(temperature),
      temperature307: Some(temperature),
      temperature308: Some(temperature),
      temperature309: Some(temperature),
      temperature310: Some(temperature),
      temperature311: Some(temperature),
      temperature312: Some(temperature),
      temperature313: Some(temperature),
      temperature314: Some(temperature),
      temperature315: Some(temperature),
      temperature316: Some(temperature),
      temperature317: Some(temperature),
      temperature318: Some(temperature),
      temperature319: Some(temperature),
      temperature320: Some(temperature),
      temperature321: Some(temperature),
      temperature322: Some(temperature),
      temperature323: Some(temperature),
      temperature324: Some(temperature),
      temperature325: Some(temperature),
      temperature326: Some(temperature),
      temperature327: Some(temperature),
      temperature328: Some(temperature),
      temperature329: Some(temperature),
      temperature330: Some(temperature),
      temperature331: Some(temperature),
      temperature332: Some(temperature),
      temperature333: Some(temperature),
      temperature334: Some(temperature),
      temperature335: Some(temperature),
      temperature336: Some(temperature),
      temperature337: Some(temperature),
      temperature338: Some(temperature),
      temperature339: Some(temperature),
      temperature340: Some(temperature),
      temperature341: Some(temperature),
      temperature342: Some(temperature),
      temperature343: Some(temperature),
      temperature344: Some(temperature),
      temperature345: Some(temperature),
      temperature346: Some(temperature),
      temperature347: Some(temperature),
      temperature348: Some(temperature),
      temperature349: Some(temperature),
      temperature350: Some(temperature),
      temperature351: Some(temperature),
      temperature352: Some(temperature),
      temperature353: Some(temperature),
      temperature354: Some(temperature),
      temperature355: Some(temperature),
      temperature356: Some(temperature),
      temperature357: Some(temperature),
      temperature358: Some(temperature),
      temperature359: Some(temperature),
      temperature360: Some(temperature),
      temperature361: Some(temperature),
      temperature362: Some(temperature),
      temperature363: Some(temperature),
      temperature364: Some(temperature),
      temperature365: Some(temperature),
      temperature366: Some(temperature),
      temperature367: Some(temperature),
      temperature368: Some(temperature),
      temperature369: Some(temperature),
      temperature370: Some(temperature),
      temperature371: Some(temperature),
      temperature372: Some(temperature),
      temperature373: Some(temperature),
      temperature374: Some(temperature),
      temperature375: Some(temperature),
      temperature376: Some(temperature),
      temperature377: Some(temperature),
      temperature378: Some(temperature),
      temperature379: Some(temperature),
      temperature380: Some(temperature),
      temperature381: Some(temperature),
      temperature382: Some(temperature),
      temperature383: Some(temperature),
      temperature384: Some(temperature),
      temperature385: Some(temperature),
      temperature386: Some(temperature),
      temperature387: Some(temperature),
      temperature388: Some(temperature),
      temperature389: Some(temperature),
      temperature390: Some(temperature),
      temperature391: Some(temperature),
      temperature392: Some(temperature),
      temperature393: Some(temperature),
      temperature394: Some(temperature),
      temperature395: Some(temperature),
      temperature396: Some(temperature),
      temperature397: Some(temperature),
      temperature398: Some(temperature),
      temperature399: Some(temperature),
      temperature400: Some(temperature),
      temperature401: Some(temperature),
      temperature402: Some(temperature),
      temperature403: Some(temperature),
      temperature404: Some(temperature),
      temperature405: Some(temperature),
      temperature406: Some(temperature),
      temperature407: Some(temperature),
      temperature408: Some(temperature),
      temperature409: Some(temperature),
      temperature410: Some(temperature),
      temperature411: Some(temperature),
      temperature412: Some(temperature),
      temperature413: Some(temperature),
      temperature414: Some(temperature),
      temperature415: Some(temperature),
      temperature416: Some(temperature),
      temperature417: Some(temperature),
      temperature418: Some(temperature),
      temperature419: Some(temperature),
      temperature420: Some(temperature),
      temperature421: Some(temperature),
      temperature422: Some(temperature),
      temperature423: Some(temperature),
      temperature424: Some(temperature),
      temperature425: Some(temperature),
      temperature426: Some(temperature),
      temperature427: Some(temperature),
      temperature428: Some(temperature),
      temperature429: Some(temperature),
      temperature430: Some(temperature),
      temperature431: Some(temperature),
      temperature432: Some(temperature),
      temperature433: Some(temperature),
      temperature434: Some(temperature),
      temperature435: Some(temperature),
      temperature436: Some(temperature),
      temperature437: Some(temperature),
      temperature438: Some(temperature),
      temperature439: Some(temperature),
      temperature440: Some(temperature),
      temperature441: Some(temperature),
      temperature442: Some(temperature),
      temperature443: Some(temperature),
      temperature444: Some(temperature),
      temperature445: Some(temperature),
      temperature446: Some(temperature),
      temperature447: Some(temperature),
      temperature448: Some(temperature),
      temperature449: Some(temperature),
      temperature450: Some(temperature),
      temperature451: Some(temperature),
      temperature452: Some(temperature),
      temperature453: Some(temperature),
      temperature454: Some(temperature),
      temperature455: Some(temperature),
      temperature456: Some(temperature),
      temperature457: Some(temperature),
      temperature458: Some(temperature),
      temperature459: Some(temperature),
      temperature460: Some(temperature),
      temperature461: Some(temperature),
      temperature462: Some(temperature),
      temperature463: Some(temperature),
      temperature464: Some(temperature),
      temperature465: Some(temperature),
      temperature466: Some(temperature),
      temperature467: Some(temperature),
      temperature468: Some(temperature),
      temperature469: Some(temperature),
      temperature470: Some(temperature),
      temperature471: Some(temperature),
      temperature472: Some(temperature),
      temperature473: Some(temperature),
      temperature474: Some(temperature),
      temperature475: Some(temperature),
      temperature476: Some(temperature),
      temperature477: Some(temperature),
      temperature478: Some(temperature),
      temperature479: Some(temperature),
      temperature480: Some(temperature),
      temperature481: Some(temperature),
      temperature482: Some(temperature),
      temperature483: Some(temperature),
      temperature484: Some(temperature),
      temperature485: Some(temperature),
      temperature486: Some(temperature),
      temperature487: Some(temperature),
      temperature488: Some(temperature),
      temperature489: Some(temperature),
      temperature490: Some(temperature),
      temperature491: Some(temperature),
      temperature492: Some(temperature),
      temperature493: Some(temperature),
      temperature494: Some(temperature),
      temperature495: Some(temperature),
      temperature496: Some(temperature),
      temperature497: Some(temperature),
      temperature498: Some(temperature),
      temperature499: Some(temperature),
      temperature500: Some(temperature),
  }
}
  1. Change to 500 temperature fields in src/protos/production.iot.motor.proto file,:
Click to expand!
syntax = "proto3";
package production.iot;

message Motor {
optional string motor_id = 1;
optional string timestamp = 2;
optional double temperature1 = 3;
optional double temperature2 = 4;
optional double temperature3 = 5;
optional double temperature4 = 6;
optional double temperature5 = 7;
optional double temperature6 = 8;
optional double temperature7 = 9;
optional double temperature8 = 10;
optional double temperature9 = 11;
optional double temperature10 = 12;
optional double temperature11 = 13;
optional double temperature12 = 14;
optional double temperature13 = 15;
optional double temperature14 = 16;
optional double temperature15 = 17;
optional double temperature16 = 18;
optional double temperature17 = 19;
optional double temperature18 = 20;
optional double temperature19 = 21;
optional double temperature20 = 22;
optional double temperature21 = 23;
optional double temperature22 = 24;
optional double temperature23 = 25;
optional double temperature24 = 26;
optional double temperature25 = 27;
optional double temperature26 = 28;
optional double temperature27 = 29;
optional double temperature28 = 30;
optional double temperature29 = 31;
optional double temperature30 = 32;
optional double temperature31 = 33;
optional double temperature32 = 34;
optional double temperature33 = 35;
optional double temperature34 = 36;
optional double temperature35 = 37;
optional double temperature36 = 38;
optional double temperature37 = 39;
optional double temperature38 = 40;
optional double temperature39 = 41;
optional double temperature40 = 42;
optional double temperature41 = 43;
optional double temperature42 = 44;
optional double temperature43 = 45;
optional double temperature44 = 46;
optional double temperature45 = 47;
optional double temperature46 = 48;
optional double temperature47 = 49;
optional double temperature48 = 50;
optional double temperature49 = 51;
optional double temperature50 = 52;
optional double temperature51 = 53;
optional double temperature52 = 54;
optional double temperature53 = 55;
optional double temperature54 = 56;
optional double temperature55 = 57;
optional double temperature56 = 58;
optional double temperature57 = 59;
optional double temperature58 = 60;
optional double temperature59 = 61;
optional double temperature60 = 62;
optional double temperature61 = 63;
optional double temperature62 = 64;
optional double temperature63 = 65;
optional double temperature64 = 66;
optional double temperature65 = 67;
optional double temperature66 = 68;
optional double temperature67 = 69;
optional double temperature68 = 70;
optional double temperature69 = 71;
optional double temperature70 = 72;
optional double temperature71 = 73;
optional double temperature72 = 74;
optional double temperature73 = 75;
optional double temperature74 = 76;
optional double temperature75 = 77;
optional double temperature76 = 78;
optional double temperature77 = 79;
optional double temperature78 = 80;
optional double temperature79 = 81;
optional double temperature80 = 82;
optional double temperature81 = 83;
optional double temperature82 = 84;
optional double temperature83 = 85;
optional double temperature84 = 86;
optional double temperature85 = 87;
optional double temperature86 = 88;
optional double temperature87 = 89;
optional double temperature88 = 90;
optional double temperature89 = 91;
optional double temperature90 = 92;
optional double temperature91 = 93;
optional double temperature92 = 94;
optional double temperature93 = 95;
optional double temperature94 = 96;
optional double temperature95 = 97;
optional double temperature96 = 98;
optional double temperature97 = 99;
optional double temperature98 = 100;
optional double temperature99 = 101;
optional double temperature100 = 102;
optional double temperature101 = 103;
optional double temperature102 = 104;
optional double temperature103 = 105;
optional double temperature104 = 106;
optional double temperature105 = 107;
optional double temperature106 = 108;
optional double temperature107 = 109;
optional double temperature108 = 110;
optional double temperature109 = 111;
optional double temperature110 = 112;
optional double temperature111 = 113;
optional double temperature112 = 114;
optional double temperature113 = 115;
optional double temperature114 = 116;
optional double temperature115 = 117;
optional double temperature116 = 118;
optional double temperature117 = 119;
optional double temperature118 = 120;
optional double temperature119 = 121;
optional double temperature120 = 122;
optional double temperature121 = 123;
optional double temperature122 = 124;
optional double temperature123 = 125;
optional double temperature124 = 126;
optional double temperature125 = 127;
optional double temperature126 = 128;
optional double temperature127 = 129;
optional double temperature128 = 130;
optional double temperature129 = 131;
optional double temperature130 = 132;
optional double temperature131 = 133;
optional double temperature132 = 134;
optional double temperature133 = 135;
optional double temperature134 = 136;
optional double temperature135 = 137;
optional double temperature136 = 138;
optional double temperature137 = 139;
optional double temperature138 = 140;
optional double temperature139 = 141;
optional double temperature140 = 142;
optional double temperature141 = 143;
optional double temperature142 = 144;
optional double temperature143 = 145;
optional double temperature144 = 146;
optional double temperature145 = 147;
optional double temperature146 = 148;
optional double temperature147 = 149;
optional double temperature148 = 150;
optional double temperature149 = 151;
optional double temperature150 = 152;
optional double temperature151 = 153;
optional double temperature152 = 154;
optional double temperature153 = 155;
optional double temperature154 = 156;
optional double temperature155 = 157;
optional double temperature156 = 158;
optional double temperature157 = 159;
optional double temperature158 = 160;
optional double temperature159 = 161;
optional double temperature160 = 162;
optional double temperature161 = 163;
optional double temperature162 = 164;
optional double temperature163 = 165;
optional double temperature164 = 166;
optional double temperature165 = 167;
optional double temperature166 = 168;
optional double temperature167 = 169;
optional double temperature168 = 170;
optional double temperature169 = 171;
optional double temperature170 = 172;
optional double temperature171 = 173;
optional double temperature172 = 174;
optional double temperature173 = 175;
optional double temperature174 = 176;
optional double temperature175 = 177;
optional double temperature176 = 178;
optional double temperature177 = 179;
optional double temperature178 = 180;
optional double temperature179 = 181;
optional double temperature180 = 182;
optional double temperature181 = 183;
optional double temperature182 = 184;
optional double temperature183 = 185;
optional double temperature184 = 186;
optional double temperature185 = 187;
optional double temperature186 = 188;
optional double temperature187 = 189;
optional double temperature188 = 190;
optional double temperature189 = 191;
optional double temperature190 = 192;
optional double temperature191 = 193;
optional double temperature192 = 194;
optional double temperature193 = 195;
optional double temperature194 = 196;
optional double temperature195 = 197;
optional double temperature196 = 198;
optional double temperature197 = 199;
optional double temperature198 = 200;
optional double temperature199 = 201;
optional double temperature200 = 202;
optional double temperature201 = 203;
optional double temperature202 = 204;
optional double temperature203 = 205;
optional double temperature204 = 206;
optional double temperature205 = 207;
optional double temperature206 = 208;
optional double temperature207 = 209;
optional double temperature208 = 210;
optional double temperature209 = 211;
optional double temperature210 = 212;
optional double temperature211 = 213;
optional double temperature212 = 214;
optional double temperature213 = 215;
optional double temperature214 = 216;
optional double temperature215 = 217;
optional double temperature216 = 218;
optional double temperature217 = 219;
optional double temperature218 = 220;
optional double temperature219 = 221;
optional double temperature220 = 222;
optional double temperature221 = 223;
optional double temperature222 = 224;
optional double temperature223 = 225;
optional double temperature224 = 226;
optional double temperature225 = 227;
optional double temperature226 = 228;
optional double temperature227 = 229;
optional double temperature228 = 230;
optional double temperature229 = 231;
optional double temperature230 = 232;
optional double temperature231 = 233;
optional double temperature232 = 234;
optional double temperature233 = 235;
optional double temperature234 = 236;
optional double temperature235 = 237;
optional double temperature236 = 238;
optional double temperature237 = 239;
optional double temperature238 = 240;
optional double temperature239 = 241;
optional double temperature240 = 242;
optional double temperature241 = 243;
optional double temperature242 = 244;
optional double temperature243 = 245;
optional double temperature244 = 246;
optional double temperature245 = 247;
optional double temperature246 = 248;
optional double temperature247 = 249;
optional double temperature248 = 250;
optional double temperature249 = 251;
optional double temperature250 = 252;
optional double temperature251 = 253;
optional double temperature252 = 254;
optional double temperature253 = 255;
optional double temperature254 = 256;
optional double temperature255 = 257;
optional double temperature256 = 258;
optional double temperature257 = 259;
optional double temperature258 = 260;
optional double temperature259 = 261;
optional double temperature260 = 262;
optional double temperature261 = 263;
optional double temperature262 = 264;
optional double temperature263 = 265;
optional double temperature264 = 266;
optional double temperature265 = 267;
optional double temperature266 = 268;
optional double temperature267 = 269;
optional double temperature268 = 270;
optional double temperature269 = 271;
optional double temperature270 = 272;
optional double temperature271 = 273;
optional double temperature272 = 274;
optional double temperature273 = 275;
optional double temperature274 = 276;
optional double temperature275 = 277;
optional double temperature276 = 278;
optional double temperature277 = 279;
optional double temperature278 = 280;
optional double temperature279 = 281;
optional double temperature280 = 282;
optional double temperature281 = 283;
optional double temperature282 = 284;
optional double temperature283 = 285;
optional double temperature284 = 286;
optional double temperature285 = 287;
optional double temperature286 = 288;
optional double temperature287 = 289;
optional double temperature288 = 290;
optional double temperature289 = 291;
optional double temperature290 = 292;
optional double temperature291 = 293;
optional double temperature292 = 294;
optional double temperature293 = 295;
optional double temperature294 = 296;
optional double temperature295 = 297;
optional double temperature296 = 298;
optional double temperature297 = 299;
optional double temperature298 = 300;
optional double temperature299 = 301;
optional double temperature300 = 302;
optional double temperature301 = 303;
optional double temperature302 = 304;
optional double temperature303 = 305;
optional double temperature304 = 306;
optional double temperature305 = 307;
optional double temperature306 = 308;
optional double temperature307 = 309;
optional double temperature308 = 310;
optional double temperature309 = 311;
optional double temperature310 = 312;
optional double temperature311 = 313;
optional double temperature312 = 314;
optional double temperature313 = 315;
optional double temperature314 = 316;
optional double temperature315 = 317;
optional double temperature316 = 318;
optional double temperature317 = 319;
optional double temperature318 = 320;
optional double temperature319 = 321;
optional double temperature320 = 322;
optional double temperature321 = 323;
optional double temperature322 = 324;
optional double temperature323 = 325;
optional double temperature324 = 326;
optional double temperature325 = 327;
optional double temperature326 = 328;
optional double temperature327 = 329;
optional double temperature328 = 330;
optional double temperature329 = 331;
optional double temperature330 = 332;
optional double temperature331 = 333;
optional double temperature332 = 334;
optional double temperature333 = 335;
optional double temperature334 = 336;
optional double temperature335 = 337;
optional double temperature336 = 338;
optional double temperature337 = 339;
optional double temperature338 = 340;
optional double temperature339 = 341;
optional double temperature340 = 342;
optional double temperature341 = 343;
optional double temperature342 = 344;
optional double temperature343 = 345;
optional double temperature344 = 346;
optional double temperature345 = 347;
optional double temperature346 = 348;
optional double temperature347 = 349;
optional double temperature348 = 350;
optional double temperature349 = 351;
optional double temperature350 = 352;
optional double temperature351 = 353;
optional double temperature352 = 354;
optional double temperature353 = 355;
optional double temperature354 = 356;
optional double temperature355 = 357;
optional double temperature356 = 358;
optional double temperature357 = 359;
optional double temperature358 = 360;
optional double temperature359 = 361;
optional double temperature360 = 362;
optional double temperature361 = 363;
optional double temperature362 = 364;
optional double temperature363 = 365;
optional double temperature364 = 366;
optional double temperature365 = 367;
optional double temperature366 = 368;
optional double temperature367 = 369;
optional double temperature368 = 370;
optional double temperature369 = 371;
optional double temperature370 = 372;
optional double temperature371 = 373;
optional double temperature372 = 374;
optional double temperature373 = 375;
optional double temperature374 = 376;
optional double temperature375 = 377;
optional double temperature376 = 378;
optional double temperature377 = 379;
optional double temperature378 = 380;
optional double temperature379 = 381;
optional double temperature380 = 382;
optional double temperature381 = 383;
optional double temperature382 = 384;
optional double temperature383 = 385;
optional double temperature384 = 386;
optional double temperature385 = 387;
optional double temperature386 = 388;
optional double temperature387 = 389;
optional double temperature388 = 390;
optional double temperature389 = 391;
optional double temperature390 = 392;
optional double temperature391 = 393;
optional double temperature392 = 394;
optional double temperature393 = 395;
optional double temperature394 = 396;
optional double temperature395 = 397;
optional double temperature396 = 398;
optional double temperature397 = 399;
optional double temperature398 = 400;
optional double temperature399 = 401;
optional double temperature400 = 402;
optional double temperature401 = 403;
optional double temperature402 = 404;
optional double temperature403 = 405;
optional double temperature404 = 406;
optional double temperature405 = 407;
optional double temperature406 = 408;
optional double temperature407 = 409;
optional double temperature408 = 410;
optional double temperature409 = 411;
optional double temperature410 = 412;
optional double temperature411 = 413;
optional double temperature412 = 414;
optional double temperature413 = 415;
optional double temperature414 = 416;
optional double temperature415 = 417;
optional double temperature416 = 418;
optional double temperature417 = 419;
optional double temperature418 = 420;
optional double temperature419 = 421;
optional double temperature420 = 422;
optional double temperature421 = 423;
optional double temperature422 = 424;
optional double temperature423 = 425;
optional double temperature424 = 426;
optional double temperature425 = 427;
optional double temperature426 = 428;
optional double temperature427 = 429;
optional double temperature428 = 430;
optional double temperature429 = 431;
optional double temperature430 = 432;
optional double temperature431 = 433;
optional double temperature432 = 434;
optional double temperature433 = 435;
optional double temperature434 = 436;
optional double temperature435 = 437;
optional double temperature436 = 438;
optional double temperature437 = 439;
optional double temperature438 = 440;
optional double temperature439 = 441;
optional double temperature440 = 442;
optional double temperature441 = 443;
optional double temperature442 = 444;
optional double temperature443 = 445;
optional double temperature444 = 446;
optional double temperature445 = 447;
optional double temperature446 = 448;
optional double temperature447 = 449;
optional double temperature448 = 450;
optional double temperature449 = 451;
optional double temperature450 = 452;
optional double temperature451 = 453;
optional double temperature452 = 454;
optional double temperature453 = 455;
optional double temperature454 = 456;
optional double temperature455 = 457;
optional double temperature456 = 458;
optional double temperature457 = 459;
optional double temperature458 = 460;
optional double temperature459 = 461;
optional double temperature460 = 462;
optional double temperature461 = 463;
optional double temperature462 = 464;
optional double temperature463 = 465;
optional double temperature464 = 466;
optional double temperature465 = 467;
optional double temperature466 = 468;
optional double temperature467 = 469;
optional double temperature468 = 470;
optional double temperature469 = 471;
optional double temperature470 = 472;
optional double temperature471 = 473;
optional double temperature472 = 474;
optional double temperature473 = 475;
optional double temperature474 = 476;
optional double temperature475 = 477;
optional double temperature476 = 478;
optional double temperature477 = 479;
optional double temperature478 = 480;
optional double temperature479 = 481;
optional double temperature480 = 482;
optional double temperature481 = 483;
optional double temperature482 = 484;
optional double temperature483 = 485;
optional double temperature484 = 486;
optional double temperature485 = 487;
optional double temperature486 = 488;
optional double temperature487 = 489;
optional double temperature488 = 490;
optional double temperature489 = 491;
optional double temperature490 = 492;
optional double temperature491 = 493;
optional double temperature492 = 494;
optional double temperature493 = 495;
optional double temperature494 = 496;
optional double temperature495 = 497;
optional double temperature496 = 498;
optional double temperature497 = 499;
optional double temperature498 = 500;
optional double temperature499 = 501;
optional double temperature500 = 502;
}
  1. Register the schema (500 temperature fields)
curl --location 'https://confluent-schema-registry.hongbomiao.internal.com/subjects/production.iot.motor.proto-value/versions' \
--header 'Content-Type: application/vnd.schemaregistry.v1+json' \
--data '{
    "schemaType": "PROTOBUF",
    "schema": "syntax = \"proto3\"; package production.iot; message Motor { optional string motor_id = 1; optional string timestamp = 2; optional double temperature1 = 3; optional double temperature2 = 4; optional double temperature3 = 5; optional double temperature4 = 6; optional double temperature5 = 7; optional double temperature6 = 8; optional double temperature7 = 9; optional double temperature8 = 10; optional double temperature9 = 11; optional double temperature10 = 12; optional double temperature11 = 13; optional double temperature12 = 14; optional double temperature13 = 15; optional double temperature14 = 16; optional double temperature15 = 17; optional double temperature16 = 18; optional double temperature17 = 19; optional double temperature18 = 20; optional double temperature19 = 21; optional double temperature20 = 22; optional double temperature21 = 23; optional double temperature22 = 24; optional double temperature23 = 25; optional double temperature24 = 26; optional double temperature25 = 27; optional double temperature26 = 28; optional double temperature27 = 29; optional double temperature28 = 30; optional double temperature29 = 31; optional double temperature30 = 32; optional double temperature31 = 33; optional double temperature32 = 34; optional double temperature33 = 35; optional double temperature34 = 36; optional double temperature35 = 37; optional double temperature36 = 38; optional double temperature37 = 39; optional double temperature38 = 40; optional double temperature39 = 41; optional double temperature40 = 42; optional double temperature41 = 43; optional double temperature42 = 44; optional double temperature43 = 45; optional double temperature44 = 46; optional double temperature45 = 47; optional double temperature46 = 48; optional double temperature47 = 49; optional double temperature48 = 50; optional double temperature49 = 51; optional double temperature50 = 52; optional double temperature51 = 53; optional double temperature52 = 54; optional double temperature53 = 55; optional double temperature54 = 56; optional double temperature55 = 57; optional double temperature56 = 58; optional double temperature57 = 59; optional double temperature58 = 60; optional double temperature59 = 61; optional double temperature60 = 62; optional double temperature61 = 63; optional double temperature62 = 64; optional double temperature63 = 65; optional double temperature64 = 66; optional double temperature65 = 67; optional double temperature66 = 68; optional double temperature67 = 69; optional double temperature68 = 70; optional double temperature69 = 71; optional double temperature70 = 72; optional double temperature71 = 73; optional double temperature72 = 74; optional double temperature73 = 75; optional double temperature74 = 76; optional double temperature75 = 77; optional double temperature76 = 78; optional double temperature77 = 79; optional double temperature78 = 80; optional double temperature79 = 81; optional double temperature80 = 82; optional double temperature81 = 83; optional double temperature82 = 84; optional double temperature83 = 85; optional double temperature84 = 86; optional double temperature85 = 87; optional double temperature86 = 88; optional double temperature87 = 89; optional double temperature88 = 90; optional double temperature89 = 91; optional double temperature90 = 92; optional double temperature91 = 93; optional double temperature92 = 94; optional double temperature93 = 95; optional double temperature94 = 96; optional double temperature95 = 97; optional double temperature96 = 98; optional double temperature97 = 99; optional double temperature98 = 100; optional double temperature99 = 101; optional double temperature100 = 102; optional double temperature101 = 103; optional double temperature102 = 104; optional double temperature103 = 105; optional double temperature104 = 106; optional double temperature105 = 107; optional double temperature106 = 108; optional double temperature107 = 109; optional double temperature108 = 110; optional double temperature109 = 111; optional double temperature110 = 112; optional double temperature111 = 113; optional double temperature112 = 114; optional double temperature113 = 115; optional double temperature114 = 116; optional double temperature115 = 117; optional double temperature116 = 118; optional double temperature117 = 119; optional double temperature118 = 120; optional double temperature119 = 121; optional double temperature120 = 122; optional double temperature121 = 123; optional double temperature122 = 124; optional double temperature123 = 125; optional double temperature124 = 126; optional double temperature125 = 127; optional double temperature126 = 128; optional double temperature127 = 129; optional double temperature128 = 130; optional double temperature129 = 131; optional double temperature130 = 132; optional double temperature131 = 133; optional double temperature132 = 134; optional double temperature133 = 135; optional double temperature134 = 136; optional double temperature135 = 137; optional double temperature136 = 138; optional double temperature137 = 139; optional double temperature138 = 140; optional double temperature139 = 141; optional double temperature140 = 142; optional double temperature141 = 143; optional double temperature142 = 144; optional double temperature143 = 145; optional double temperature144 = 146; optional double temperature145 = 147; optional double temperature146 = 148; optional double temperature147 = 149; optional double temperature148 = 150; optional double temperature149 = 151; optional double temperature150 = 152; optional double temperature151 = 153; optional double temperature152 = 154; optional double temperature153 = 155; optional double temperature154 = 156; optional double temperature155 = 157; optional double temperature156 = 158; optional double temperature157 = 159; optional double temperature158 = 160; optional double temperature159 = 161; optional double temperature160 = 162; optional double temperature161 = 163; optional double temperature162 = 164; optional double temperature163 = 165; optional double temperature164 = 166; optional double temperature165 = 167; optional double temperature166 = 168; optional double temperature167 = 169; optional double temperature168 = 170; optional double temperature169 = 171; optional double temperature170 = 172; optional double temperature171 = 173; optional double temperature172 = 174; optional double temperature173 = 175; optional double temperature174 = 176; optional double temperature175 = 177; optional double temperature176 = 178; optional double temperature177 = 179; optional double temperature178 = 180; optional double temperature179 = 181; optional double temperature180 = 182; optional double temperature181 = 183; optional double temperature182 = 184; optional double temperature183 = 185; optional double temperature184 = 186; optional double temperature185 = 187; optional double temperature186 = 188; optional double temperature187 = 189; optional double temperature188 = 190; optional double temperature189 = 191; optional double temperature190 = 192; optional double temperature191 = 193; optional double temperature192 = 194; optional double temperature193 = 195; optional double temperature194 = 196; optional double temperature195 = 197; optional double temperature196 = 198; optional double temperature197 = 199; optional double temperature198 = 200; optional double temperature199 = 201; optional double temperature200 = 202; optional double temperature201 = 203; optional double temperature202 = 204; optional double temperature203 = 205; optional double temperature204 = 206; optional double temperature205 = 207; optional double temperature206 = 208; optional double temperature207 = 209; optional double temperature208 = 210; optional double temperature209 = 211; optional double temperature210 = 212; optional double temperature211 = 213; optional double temperature212 = 214; optional double temperature213 = 215; optional double temperature214 = 216; optional double temperature215 = 217; optional double temperature216 = 218; optional double temperature217 = 219; optional double temperature218 = 220; optional double temperature219 = 221; optional double temperature220 = 222; optional double temperature221 = 223; optional double temperature222 = 224; optional double temperature223 = 225; optional double temperature224 = 226; optional double temperature225 = 227; optional double temperature226 = 228; optional double temperature227 = 229; optional double temperature228 = 230; optional double temperature229 = 231; optional double temperature230 = 232; optional double temperature231 = 233; optional double temperature232 = 234; optional double temperature233 = 235; optional double temperature234 = 236; optional double temperature235 = 237; optional double temperature236 = 238; optional double temperature237 = 239; optional double temperature238 = 240; optional double temperature239 = 241; optional double temperature240 = 242; optional double temperature241 = 243; optional double temperature242 = 244; optional double temperature243 = 245; optional double temperature244 = 246; optional double temperature245 = 247; optional double temperature246 = 248; optional double temperature247 = 249; optional double temperature248 = 250; optional double temperature249 = 251; optional double temperature250 = 252; optional double temperature251 = 253; optional double temperature252 = 254; optional double temperature253 = 255; optional double temperature254 = 256; optional double temperature255 = 257; optional double temperature256 = 258; optional double temperature257 = 259; optional double temperature258 = 260; optional double temperature259 = 261; optional double temperature260 = 262; optional double temperature261 = 263; optional double temperature262 = 264; optional double temperature263 = 265; optional double temperature264 = 266; optional double temperature265 = 267; optional double temperature266 = 268; optional double temperature267 = 269; optional double temperature268 = 270; optional double temperature269 = 271; optional double temperature270 = 272; optional double temperature271 = 273; optional double temperature272 = 274; optional double temperature273 = 275; optional double temperature274 = 276; optional double temperature275 = 277; optional double temperature276 = 278; optional double temperature277 = 279; optional double temperature278 = 280; optional double temperature279 = 281; optional double temperature280 = 282; optional double temperature281 = 283; optional double temperature282 = 284; optional double temperature283 = 285; optional double temperature284 = 286; optional double temperature285 = 287; optional double temperature286 = 288; optional double temperature287 = 289; optional double temperature288 = 290; optional double temperature289 = 291; optional double temperature290 = 292; optional double temperature291 = 293; optional double temperature292 = 294; optional double temperature293 = 295; optional double temperature294 = 296; optional double temperature295 = 297; optional double temperature296 = 298; optional double temperature297 = 299; optional double temperature298 = 300; optional double temperature299 = 301; optional double temperature300 = 302; optional double temperature301 = 303; optional double temperature302 = 304; optional double temperature303 = 305; optional double temperature304 = 306; optional double temperature305 = 307; optional double temperature306 = 308; optional double temperature307 = 309; optional double temperature308 = 310; optional double temperature309 = 311; optional double temperature310 = 312; optional double temperature311 = 313; optional double temperature312 = 314; optional double temperature313 = 315; optional double temperature314 = 316; optional double temperature315 = 317; optional double temperature316 = 318; optional double temperature317 = 319; optional double temperature318 = 320; optional double temperature319 = 321; optional double temperature320 = 322; optional double temperature321 = 323; optional double temperature322 = 324; optional double temperature323 = 325; optional double temperature324 = 326; optional double temperature325 = 327; optional double temperature326 = 328; optional double temperature327 = 329; optional double temperature328 = 330; optional double temperature329 = 331; optional double temperature330 = 332; optional double temperature331 = 333; optional double temperature332 = 334; optional double temperature333 = 335; optional double temperature334 = 336; optional double temperature335 = 337; optional double temperature336 = 338; optional double temperature337 = 339; optional double temperature338 = 340; optional double temperature339 = 341; optional double temperature340 = 342; optional double temperature341 = 343; optional double temperature342 = 344; optional double temperature343 = 345; optional double temperature344 = 346; optional double temperature345 = 347; optional double temperature346 = 348; optional double temperature347 = 349; optional double temperature348 = 350; optional double temperature349 = 351; optional double temperature350 = 352; optional double temperature351 = 353; optional double temperature352 = 354; optional double temperature353 = 355; optional double temperature354 = 356; optional double temperature355 = 357; optional double temperature356 = 358; optional double temperature357 = 359; optional double temperature358 = 360; optional double temperature359 = 361; optional double temperature360 = 362; optional double temperature361 = 363; optional double temperature362 = 364; optional double temperature363 = 365; optional double temperature364 = 366; optional double temperature365 = 367; optional double temperature366 = 368; optional double temperature367 = 369; optional double temperature368 = 370; optional double temperature369 = 371; optional double temperature370 = 372; optional double temperature371 = 373; optional double temperature372 = 374; optional double temperature373 = 375; optional double temperature374 = 376; optional double temperature375 = 377; optional double temperature376 = 378; optional double temperature377 = 379; optional double temperature378 = 380; optional double temperature379 = 381; optional double temperature380 = 382; optional double temperature381 = 383; optional double temperature382 = 384; optional double temperature383 = 385; optional double temperature384 = 386; optional double temperature385 = 387; optional double temperature386 = 388; optional double temperature387 = 389; optional double temperature388 = 390; optional double temperature389 = 391; optional double temperature390 = 392; optional double temperature391 = 393; optional double temperature392 = 394; optional double temperature393 = 395; optional double temperature394 = 396; optional double temperature395 = 397; optional double temperature396 = 398; optional double temperature397 = 399; optional double temperature398 = 400; optional double temperature399 = 401; optional double temperature400 = 402; optional double temperature401 = 403; optional double temperature402 = 404; optional double temperature403 = 405; optional double temperature404 = 406; optional double temperature405 = 407; optional double temperature406 = 408; optional double temperature407 = 409; optional double temperature408 = 410; optional double temperature409 = 411; optional double temperature410 = 412; optional double temperature411 = 413; optional double temperature412 = 414; optional double temperature413 = 415; optional double temperature414 = 416; optional double temperature415 = 417; optional double temperature416 = 418; optional double temperature417 = 419; optional double temperature418 = 420; optional double temperature419 = 421; optional double temperature420 = 422; optional double temperature421 = 423; optional double temperature422 = 424; optional double temperature423 = 425; optional double temperature424 = 426; optional double temperature425 = 427; optional double temperature426 = 428; optional double temperature427 = 429; optional double temperature428 = 430; optional double temperature429 = 431; optional double temperature430 = 432; optional double temperature431 = 433; optional double temperature432 = 434; optional double temperature433 = 435; optional double temperature434 = 436; optional double temperature435 = 437; optional double temperature436 = 438; optional double temperature437 = 439; optional double temperature438 = 440; optional double temperature439 = 441; optional double temperature440 = 442; optional double temperature441 = 443; optional double temperature442 = 444; optional double temperature443 = 445; optional double temperature444 = 446; optional double temperature445 = 447; optional double temperature446 = 448; optional double temperature447 = 449; optional double temperature448 = 450; optional double temperature449 = 451; optional double temperature450 = 452; optional double temperature451 = 453; optional double temperature452 = 454; optional double temperature453 = 455; optional double temperature454 = 456; optional double temperature455 = 457; optional double temperature456 = 458; optional double temperature457 = 459; optional double temperature458 = 460; optional double temperature459 = 461; optional double temperature460 = 462; optional double temperature461 = 463; optional double temperature462 = 464; optional double temperature463 = 465; optional double temperature464 = 466; optional double temperature465 = 467; optional double temperature466 = 468; optional double temperature467 = 469; optional double temperature468 = 470; optional double temperature469 = 471; optional double temperature470 = 472; optional double temperature471 = 473; optional double temperature472 = 474; optional double temperature473 = 475; optional double temperature474 = 476; optional double temperature475 = 477; optional double temperature476 = 478; optional double temperature477 = 479; optional double temperature478 = 480; optional double temperature479 = 481; optional double temperature480 = 482; optional double temperature481 = 483; optional double temperature482 = 484; optional double temperature483 = 485; optional double temperature484 = 486; optional double temperature485 = 487; optional double temperature486 = 488; optional double temperature487 = 489; optional double temperature488 = 490; optional double temperature489 = 491; optional double temperature490 = 492; optional double temperature491 = 493; optional double temperature492 = 494; optional double temperature493 = 495; optional double temperature494 = 496; optional double temperature495 = 497; optional double temperature496 = 498; optional double temperature497 = 499; optional double temperature498 = 500; optional double temperature499 = 501; optional double temperature500 = 502; }"
}'

Expected behavior

I expect the app not crash.

Additional context

If I change to less fields such as 400 temperature fields in Confluent Schema Registry, this line works well and won't crash.

        let proto_payload = encoder
            .encode(
                &buf,
                "production.iot.Motor",
                SubjectNameStrategy::TopicNameStrategy(topic.to_string(), false),
            )
            .await
            .expect("Failed to encode with schema registry");
@hongbo-miao hongbo-miao changed the title thread 'main' has overflowed its stack. fatal runtime error: stack overflow Got "fatal runtime error: stack overflow" when the schema in Confluent Schema Registry is big Oct 29, 2024
@gklijs
Copy link
Owner

gklijs commented Nov 1, 2024

Can you share the stacktrace please? I wonder if it's an issue with the implementation of logos or something else. maciejhirsz/logos#400 might be related.

@hongbo-miao
Copy link
Contributor Author

hongbo-miao commented Nov 4, 2024

Hi @gklijs I found more things. On my MacBook Pro (64 GB memory), I remember this issue happened a few times in the past. But now even I have 3000 temperature fields in Confluent Schema Registry, the code still runs well.
On another Linux machine (64 GB memory), this issue consistently shows up when I have 500 temperature fields (less fields like 400 temperature fields, the code works well).

How can I print out stack trace?
I tried to follow https://stackoverflow.com/a/71731489/2000548 adding

use std::env;
fn main() {
  env::set_var("RUST_BACKTRACE", "1");
  // My rest of code
}

and then run cargo run.

Or RUST_BACKTRACE=1 cargo run, but still just print the error

thread 'main' has overflowed its stack
fatal runtime error: stack overflow
Aborted (core dumped)

@gklijs
Copy link
Owner

gklijs commented Nov 5, 2024

I'm not sure, likely because the error is kind of outside the reach of Rust, it might not work in this case, which makes it hard to find out where it's going wrong. Googled a bit and it seems to be hard, How to diagnose a stack overflow issue’s cause? but there are some suggestions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants