From d74c8120f307efd63112a96892e776ea0b23e4a2 Mon Sep 17 00:00:00 2001 From: Daniel Vigovszky Date: Wed, 29 Jan 2025 14:53:51 +0100 Subject: [PATCH 1/3] Fix #1265 --- .../tests/rust_rpc_stubless.rs | 62 ++++++++++++++++++ test-components/caller.wasm | Bin 92932 -> 94349 bytes test-components/caller_composed.wasm | Bin 283188 -> 290202 bytes test-components/counters.wasm | Bin 84238 -> 86516 bytes test-components/ephemeral.wasm | Bin 61365 -> 61340 bytes test-components/rpc/caller/src/lib.rs | 11 ++++ test-components/rpc/caller/wit/caller.wit | 2 + test-components/rpc/counters/src/lib.rs | 5 ++ test-components/rpc/counters/wit/counters.wit | 2 + wasm-rpc/src/wasmtime.rs | 43 +++++++----- 10 files changed, 108 insertions(+), 17 deletions(-) diff --git a/golem-worker-executor-base/tests/rust_rpc_stubless.rs b/golem-worker-executor-base/tests/rust_rpc_stubless.rs index ccf420658a..01b6c132dc 100644 --- a/golem-worker-executor-base/tests/rust_rpc_stubless.rs +++ b/golem-worker-executor-base/tests/rust_rpc_stubless.rs @@ -1143,3 +1143,65 @@ async fn ephemeral_worker_invocation_via_rpc1( _ => panic!("Unexpected result value"), } } + +#[test] +#[tracing::instrument] +async fn golem_bug_1265_test( + last_unique_id: &LastUniqueId, + deps: &WorkerExecutorTestDependencies, + _tracing: &Tracing, +) { + let context = TestContext::new(last_unique_id); + let executor = start(deps, &context).await.unwrap(); + + let counters_component_id = executor.store_component("counters").await; + let caller_component_id = executor + .store_component_with_dynamic_linking( + "caller", + &[ + ( + "rpc:counters-client/counters-client", + DynamicLinkedInstance::WasmRpc(DynamicLinkedWasmRpc { + target_interface_name: HashMap::from_iter(vec![ + ("api".to_string(), "rpc:counters-exports/api".to_string()), + ( + "counter".to_string(), + "rpc:counters-exports/api".to_string(), + ), + ]), + }), + ), + ( + "rpc:ephemeral-client/ephemeral-client", + DynamicLinkedInstance::WasmRpc(DynamicLinkedWasmRpc { + target_interface_name: HashMap::from_iter(vec![( + "api".to_string(), + "rpc:ephemeral-exports/api".to_string(), + )]), + }), + ), + ], + ) + .await; + + let mut env = HashMap::new(); + env.insert( + "COUNTERS_COMPONENT_ID".to_string(), + counters_component_id.to_string(), + ); + let caller_worker_id = executor + .start_worker_with(&caller_component_id, "rpc-counters-bug1265", vec![], env) + .await; + + let result = executor + .invoke_and_await( + &caller_worker_id, + "rpc:caller-exports/caller-inline-functions.{bug-golem1265}", + vec![Value::String("test".to_string())], + ) + .await; + + drop(executor); + + check!(result == Ok(vec![Value::Result(Ok(None))])); +} diff --git a/test-components/caller.wasm b/test-components/caller.wasm index 80b3bd371ea74c661421a6957da8f1f1e7eff79c..c7994547a672232cdaa63df4c3a5eebbe5835d15 100644 GIT binary patch delta 19133 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 delta 18179 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 delta 53308 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�H3PY~ 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 B+W-In diff --git a/test-components/counters.wasm b/test-components/counters.wasm index b145993d9af2f8f02f8b02be5c5bf8e6cea4bae2..e50d299265f028077cade4c9987d05b8d06cce3e 100755 GIT binary patch delta 14117 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 T<5}o=s}NNAWv2JcOwasp#gP3! delta 12605 zcmbtb30zfG{=etG_jtg2z(o+*x$glABC86DqFi^yB`tSLQBgq>1;=G-0(UD^^k~mg z3%7FD#9Y#*XOUT%QaWYj6gJj4GtR^~Hlu0d|NA@lK0wo%`F#HPIot32&N;vREcbb1 zt7YXH%Yk*?^7TL0xV*n&rd@0Y|CO(!ui0jm?S8VC$z-xxnI!uMSY<0?Ok&I$K$+Dl zds&shK*mgrwea<_n!IGdnbj8n8UOI-<;(xz+b1L=!(w7mpqCFTXIe#tTe4Z*7Nw@U zZ6R}2<*{(rp9V0+Bqb!cR_C!OzR}MvCuX?*+MmU`QuCO?k_fA8lisn>nj=+A_ABJ;xq@V*He;OW6YUn`g=^*h035EoMvD?85!b_qSE19ek&M zwr|yfiVDf5%9@>*1VpncZV$*oJ|G|h`ILY*$X5oWBX_I- zY*x*xX{gf@kp(#LRI|gRT6+6QHce9HEPb#s9eBp@i)Vp0l%`6Su29|Kr7?#^C;G}+ zz9%$(Ow}8JXUYjG(?W}oB@`)Fh%O>blM>{58t1fV<)B!#XsieVk!{Ku9Y$ zJ~}65ncM```4$N1{^IjPCtm$%P4&bq(`o93nn`8?v)R~TevH7U&+%>m7+EX#yKGiAzl6qmRua=3hB zAs-Xj&sry@{)q34oWs87YLpXs�-$cSp5F{#jHuJIVv2+q1>IcXTE@$e)gmOZi`x z6*4qKhSmIRbRXDm%a~jQkr6R8$%>dZ53%zPV&=(v&+(pWJ1S$maSaZjOdZhTCV?)orEpG>({`SoFIEUO&V6Hm`7e@B8Xk9-^$k|^as7) zB*Y`PBqqlFSH*=ZEY33s=3f^v_MHs zS-=|j>nTxk#dcnoGAg*@RU*<*i7Khy+RYQZYij6y9VT>KJ;A4?cAKh;6TC>8y(mGJ z5Oq*hsHz7_STy1X%o&lQ$Z0`PvZ*%0G8_GnthGrMuyv0r8k(!ZFYS#cStCB!+a&X# z^fHKeS$a0|chW~0g1$rIhM?PI3^5?r49KF4k%2WNddU_5D&dZ@@+SXFMyIF;bK$LX z!E@Wk$LSchSg4JH<^%P?zs*UGeqawMLJUcet9f#_?tUA|)*M!v2dbIhtqnNN^+H+9RD+^WXJw8d_65 zJ2KPK3^{;}D?GSon-DQU<4hXUytPo}Gd{Fuw0vU`pVc!u^mW}HjNtq{IXk#ujPGC4 zlAp{Dm5)^LS9*2`TDt+Hki1MiweqRI~dN4HzJLmgnBV_vzpb!*4z&U!`c0rgO%Gb%)3w$}8 z>*utBc7abDGSK?NL8{AZ9tq)}3`t;L@Slcsf$%aP85Qy#sT9;(5Ro(kPkE1Td&J2u z)x7^mqRi^}--oS5zVuPe=O|4IwYYiRqpcyje?1x#v_oelR9AMKU^nrx>=uSL8-vG( zy7I3+SQ~x@x(&)#j`Oxz@j(sxnF?N~LH5BY&hUv@9ju2Ag9znd%}VwsCcfi2)#*5QCQM!vsF1S!fDpz*&1-Z9uZHdmXV$18yk4;$UIiTD@W!&erhod zNS35*oGqYn%{)g7n58uX2MDnD{a}9qw%-r-6JSLL^TbiZ*eU+@m>9lcRC2icCF0_c z?okl`4;HOX2k~!5T*)K-o0ccV=eh z`(}jkCHb-JFyEQ~c&jVIzhvNAIm<(nsV z#e82+9Qn}s22L9B(7t1nCbExtzU76#1JZCi{^ATZ(WlwHLI(7SN#} z8TrJ5t;oHmIFTn#X@`8oluy|e{>`kGhzH%L_69Larj9^(y)=~q?%k=Qk?)QQ5A-U6 zAw5&%G!?0E$JyHVeDO32z;92xz&__|3m4Lc+%Pl3&xD&|Z#wOZ{W`a(BhSxnt=`-z z6nO86zd{@}ghF^(QJT+MLc*r&=6i}JdTu!~ZaJaT(<6=h4TTv*Ocm6G7J2SBykPp& zV155Za56SxADqp2{q%g#MCjmo#nVDB(ly87h3gk|XBpy$44Z#_4Zl+!%l}r~c)bFC z&A2C9v&7$%-W;$9oYdk_2aU|u0&z;y2}U?1pluf)GAo&1oMDF$znd{KrpXFS9t$zS zLI~G^dlLWaj5uCi(zcm)@4@5ll6^SEmCSUqwS3LYak_w0s8DB3#wlRQtkI3C`*Btl z6qQ`s4S8{C3>4!o2{C2sTQk(`pB0gGf>xGnX_A~PHdt5-?d00NXWbQ&W>HpAe}D~; z8h#3MRPpaiOM}i66eF<9DNZZSqFN=NUUrLpTvIUn&&+zL5`&dke8{iE_^Elh>?F6&Z_D1}8S`_n>&=`W9`FZ3hux7{&Dyv8#rd5e zgiq(^`HLPus4qcI!?iH!*G~2dAN=biUZ0)UVjG=d!c|xunNx+gvWMq%3AgSgu<|Z{ zqDu#o_u4M0ehtUnAaUaf0ZD9_`+X1D+#PN!h}$c8w3Jrj0rio4ia1r#MiximN#xkX=?zN{E|y zbbwaegy>R$(hj43DkqXJ_;qTzcoXqAOOlDv@lTVpjb{?!ikLW@7+gWDIhk-#&D4lO z$D4+;K*F6K%is_9>8l0+SO1H8m9~_do@%Ci!&A+cuGl?wdcELXo=S~$zlHhkzvkEL zr=XgpPrW5WND~%BvaLM-nLhDnh<9Z@R)&$PR@J1{kzp#^4Tu*Y_592;IUzp~#Ew8C z&O_EBNZkYh#*{nQC9ahxg)QELftfO{O%yA9@gESF{hRJ0g?^VtX*UJjgf+oLP~E zQ|r$w#(IQA;+VLyAAE54$~f%obt~IL^yXFV0qL}=d*~N}3sd7I$0p8|w=4LnRr3ZP zI))V}1mY$~j|%V)Y)r|Lk8+2G!TRu0Cd5RyJ_?cR|HBAAyeiJGO1v%NU9c!q1{+oF zdhQ_z?Su5RDH^C^xg7)-czO+>N@H;O0NRY`usaUL&A0fERY@InPAth%u4+k;dnsQM ziDdj1{k{Q2A}&+LNs5BTWOOX&!&mnXY#iB%Ms`)c}^ znhXq+!;1nRQ7S~r;NUDG8+0#U`+{6|jH~M&@qd=O9EM_^<bpy zC_nvzI=WFA&2=m|F^mHT%uL-(h`nq{@Ss7HZ*J|+_XMEWVvpD^e%#h zB^$1*5^S*B`X`{?P3t$oGrPR_lKl>C?{H_ljl22f7pDYyUS3oSo^COp9rKNODMh|{ zlt1^<%Z>Pa|aS4Fj&I#h^NZ_oo2i zKvZr5P1n8v7(*S1w>lPfW*XVlbQ4kVRC@o@t6Di;1&wM&#f-)UraOUiLmy4(SDLEz zR5ei)zD5I!P^lLc8iKjezNokHJpx;)c11@sS~om{uAbwUcLj~S<7qeOgN#WG?3;S8 z0Gc(m2v_k68IM&qokMM&UQWk#+i5OxHc5o9tPXFpo@A9NpP@;>Hny-6Miuc{Xb3xM z-FbelIz~Q#Ye;pDpFuiI16=X!%~8}bdUGH7=sCW5bE>D`BDm(i-z*0Hd-D)~eIPwJ zCdjqt_}DED8u`qYu5D|LHNnzRs@nbFq6zXLsylsgpi+IO(E~&MC;ZBma@l>37i?XE zZhmd+2pPa$+iI!s-JVZGJh?rQP}XlRX(48FnpLaNyI3~t)hSK^2D{)~EDct?iyUUV z%_is4!Y9DVt8rrm|GF^G$2{<*0o~N-z33g$@mmSEg?=E?IC9$7o42L(9eo4FV_G5b^sQ7GesZ#$5mIdK@ADnsAz8Lc9`TMrBRXk>YW(&bT zd9Sb-vJO6Vf0Um`ERYZ&tM@ycx*NzaC3+!&wV~pp`XtDa_%N);jSKtZY4Y3qYac|` zCkF&se>+f0ab)7_afG}4_0Or5e=wF>OAnsBKY|Uf5fN-&O-DaZ1cO!)f!?ecUM@@- zaTt;lgo0VxwkWuuimQziiqPxyO2R0tAYy=W;VELm#^J{FG+e|kW4K;#98S+IxUykS z!5hfRLs`kX0-WA`@VQ@n({o}+7L)4gAex?0t#fB(l2Wc8>Q3&~{*9%?_VG8O0z?1? z1|tl};E!)?^GHt!*-+}H!$Nv*9&S`BYgB62BSNWXx z=lGtZkpTxtCRoT~kn;5LX#V5TEhNhqkEIhiXO1ZaSd2Cg4G2?_}MC>LpOGQpt zs4ixv;-o90H;x9h7hui4eqN*%W8cxMq9cGbVQPj4EINbTrwLzdB4PB@Ma7dAki>r8WbI=2?Bq`9Z0LfFa(a`kGmot|AKk<_ z**AaD{cNK{LF9m>p6pAaop-WHv^K+3ww@GLd*!6C+TwSb%tROy1hD>{_XC;}%)rr% zchhX*YUF@bD69F-cZZNk{`9Ue$>`efUzlXy+Sa7PlG^1&(5>2jq{$E8Z(7b{l_l?0 zG`C7<@)uUgpaG9n!m13bgx>!rtCXAJ8Mg9EtJIeOrSnb+t2}lpGWb3(gZbMn-2c50 ze)p7rhIz7P=Gpl6fw;2sv@p+8r)PO$KFpJNfNuJJ zAdGX`2d80#=^yrHFYvh^&LCs^9o$?Z&cP6RjM(U^Sfvz@oCqr=FcAg(S6FE+Q&!N2o+Au3? z2oe1-R?n{kPT>JfpI#;C2CCD+)IjiDr)}E%jfi@{*u&F49yIKLxSE)xwGzF;wgx%4_`G$6AsOE639^e(W$iz^1&c)A%A| z=5k#|#I2U2Z0B9hCgAOO^4T_QUrpuNH+=CMjUHcYmdjtIA$X{@r7&4IedFp*X1r+% z!N^#b>7VVx@hW9ABLLX!$N=3*bJ&J6h6zaYZsJA=c!xL()0=>(;m|?=oa8VLpB<&V zjuG_Hqu~soMX5~EK66t|e8o|AiD{n@(-I%bZUQ(Zyob3iIdBg>b_qW&srlWd66UBB zxHk7-e3TSF27GRC>hQ9H(z4VUC52@LnH~5KUk~C3zK)Glq^BfFs$-yKu%-)#y`Wm?8xN_ihB={*BX- zi)KqShodwLup%*(cC>>~cIQ{Wi7j7@R@ei2djUqHdzF^VoY{O8z}y(4FLdvWBhZ(H zAF!z$0cw3Ptl-q-dlgH3R>U#iC4Jy4;om6pJ)&o+KpzCZlfR)mO5@`lIEK)<~2j z*|8{zn(4gZN?%7MS~j#?C|jd^3#B*8_fUEXtWn>^gnO`V02)G2ltf>HnXmpXC9s24 zk)qHHN6JL%P*eBaSC+siKV1xi0ZKrM;wS#nGjRf-BQK* zp3p*<+5mLMBYE0{Oze8vpQGNnSvv^ab#2xTyRSW&+T8o^lh`3%{P(d;;ir)o^SJ9{ z*=b&Jy}M8UU|mH0`RVI1VUd{2jzkI|Ns$I)kV4n|qZLp6$H0y!flk)A2PIkZE@1kh z95(#X$Hw>2dgeVgOzYWO*Rf}!IDX(C-5q0F>iXRZ>_?HBw~3{(T)EMnZREXf^z^+2 zT(YqXEo)Za2sfn!hw0jnK}q^7n>|?=cVS5?s)Z$F-<{A$9++X`fBIK+>v2Z21SJ`n zr+X3zrl~Qma$!%KdgG&)VcX(g{dWFA{a^0if}^>c;t#@vrGA@JAs|s0Zv}$>F06}hNIs#!MM^`;K^lrQI#g*Z%|>M*(i)^4NN*vX zM*14*FG&AHVz93Cnyddl?!~HH+bk@eJ$B?n3!C06sD(U>nTreZr$|yRlM81!B!}zS zJm#R^zqeF6OHQlJR3ewnof(@eNpUX!JXY+TZ8AxcrAxePVIIpdb(LDX-pON{SB})i zTx&hzGmy1quKYnP$!@dyFfprLvb)v~V$K$Rp6UECU4XC3Bo`aXqL||P^B|VU0$ss_ zSu$(k>M@w51O`i1Ke;d{mziheKUq*Fg}4?BW>NmFtikfMpj_EpR!}@8)U{_YOR$Go zZCJ^G)DLEHEyFQ(W|;>jMc|`_6zckD>hfRfh^M1^AWblwQ&%OW-WCYgt%gcqSeaPZ77Rip{_AQ zSvnL^Ig~lrSl2lVOLhHzC{rRM(o!Y5Q11TTIBJhBgebm#!`|8R=?gmu4Z$mfdA`vc)Yd+RZJ^{#mo`dCs|C)6#zy z!h4@{&hz=@7_KY2D1`-$L1pboI&Nj!GKOE~jYMv#x6YlrAI5rrJW@ez* z4>HkrAaT(j;ul_;z?|Kh=cH}hn$QF*(JlqPGuMKClm%B);;fKi45v&(+QzCQE^%kS`r$+Q+Vc|Wh4 zv5SGiM~~;Qi!f1^kI$m2d`Q~*6O?|wbsrmsN6IVMaG%O z7i6VO)hHJzYI%H=_NAVZaBDbFyM2(M!#fpEq=e4P-CSs^wX?8p$Mux6(z|ZN8+uj= z?k%XCOMZj)ydnQ@1iq@wVaax64>@7Os-3&M!!n#7(^3-VP@+j&N~c7-02g+Ch=tZY zU&Zm~`tB$7aJ_+|szSs7YF{`~G%YjWZjF~x5%zmjuEUKkzU43GL$pNEw)+wBX|0&| z1KYRAFV!fHkDpa4B;LM)+DXE;KSHBX+Anis9bO*0)gXR{+i2?5(Sg+R@j0@LF0abk zG{fQJpDI!Kef&m9v~7PRK!b@oca=4%-;9bu5*?+6E^d>dg+fpYWP-kNJ)_o6TI=Gb zQVXr_hK*)pl$;bpGhDj(B78gtf3y~^zo(Y+R2PP2>cZw*+=zy(P;{!_2ApG4x6BA4 z&|ICh;#Gpm$3G$;0yFXPsgTHhTsFvXh*7vwZLl%;RrOP@P~JLj2VqG~Hf}#rvxQAU zUrk~7&`I^ePix3#wr0Cq*?8lr%hzB-t%>{9wHsDm3x&e6CrNa)KJV_Y#n9UhJc_5?2bxo*8xu(_+f32^eW1=O zcdFAtO>~f~Mx4|iovX2RsK|diRD{qQ*28`|IEW6-mJt`73hp|asgHU+OXsTP;D9zulUPa((NE_gx*uZR+aCfaW&C6}~>OQk@n9=b#d~)<+7+5U|tiOYR9qEVw%fi5BA46aR8;`jedVRKY z3A+YX=Q0faN@p~*Q-yw^CkKL^Kft@Kr)v#{pXiE)*H!q6lWFjI*Kzo?+XtiF`g5Ub zdoInNZr}H;%9!vJhkVG~H1QQHcjFx`I`MOpwkAT{CG0BBAlTcSTB(wPV#OXZXdt)kb1HEEt3hq!Lsm85AU5ghnz0+ zSK`Ha-ro#I>`Yj0XRi;xADjknAm+$HFwnnXm<8q{>rgK_%2xt~WP=|2$+y%cS^gm^sA{Zb7>*4*qv*1X=I72#{B11tL^+5z8=7%F@dWq6DpVHf5Tu`E1D4AG;q_6(F_S#J+4T^JrD zl^B8Ha>76QGvH4Hrc5y%7N2@;z68_Y&MC_mLlp8(P9(rAL=+Z76i2x0WAOb!n!mBZ z*6_uKjG$DzpbZF;8$_rlb0JAzA}r44D9vpAum3=hqmGK7ejlo?<>xfu@PuK z(~0t5&y=&lz`9rVCAvoPkwEk@n)IL5FgpAUI~@3YI6K|haj34T2_BlL&DOO2=^m|7 z)3nF9rlsO#}>YmLe58KQhcr@H^-)enz>ff$~6bGF~aquJiU$I zgp%y+l7z!FdFWJ!aT}N1&aiAcvY#h6A$4h9oiv2^PF+OclAf8l>tHr zOH1Y%{Nw-FAv~W?C+^@npU=YME5EmJNJL;7A0=i!I>0DHk(rf0Cl3$(-m3dFW-_J4 zO|BGn6LK-)dGvT5xd`Kx#rQ0(DF(;3pQ7}OZF|WGtghNgMj~BRA>B19q8dq@m|i*x zsXNxJxgaYgsz$j$Q7fcxi+!o5B-|Q_)a@7`=QW4_4%c$+(!QeGC3XA2?NiEwf zqW!bJ0d6!slFn01x9)T}XoUzd34I4vIc0rVH9|KD69-t0ZoHRfa-o!{d1)!X}o+UBMGW$A~JeY3OS(Rz`KitV&*U zz0GB(72?CFNN*NCXn2MUKxX5{^tca^^)%Epc9B8&bz`T)vTeudfZYeTZ;`BINk|Yc zl`^`+K`2zreNL1u2q1ZkIH`{~SA%L(k^g$I6v1ZZ;(#0#L`O^$ON!3|@+mr038RC4 zB)svtLcK5kk3o41lmBm%GIvnO1NeuzId^`>BMq)Wb<+ki2}4c!FU(Oyl14`Z6Sqc# zQIkL6r8=?%!IZp_sBD*DqMpKtAwH(tj(tlxw2sWe#zXyw=D2^@+F{t*Bu03xAwkFBlU6^Pf1_;`nwxF6QGTjDALYjO_vhRnKEJv@vZ2+_oY6Z3 zn>PU?{uh0+GkEvRm>vJyb!Tr2HtE+wlm5JMi=dazxX#meaBPe7F_IDkv1mn zPO#)-Z6do{9TiCWtRtr}uk%N8)8rM!PcR~m!|>seA4K8R;_wEJ3V273#^5DUcyo^- zyphevTm-#7*SVZbf!VndL%-G;4{cYWU+Kw%+nwLXYp$oO48xCi#l!0={LWJg;j^ye z1qr2-hm@|F29g2E-MxrO*tWWo)HNlqO(n{MbO+RRZvxumS)+4n88+6pdOgbB&u>1uwyBvmfl zmFQ#ablgXbB)z-iWeDJ{65_K#5Q6AzX!u%_vw?8q@cd7{d~|9PnEf6s@2&n7i=yMB z5)_?t+Trh^Z1_XJAydtQWv5@CFVTf?|Fr2%V2J=vIFT$NT(N{Cu*4Q^`51g>Kuq0* zf%fR7hI9}WgrVq+n7VCePT=3-$cNuPOz;ir8)Vq%mj~VW>>k{X&yNQ8VABiER+3R@ zJ==-$pU+m2!N~g8_NF>Vi;+Fz->BncF^mpBOPV8}4d-ShH@6)0*L&AN#&})s{;UkG zMbos$sHSD&Z^ZsP+^5y6_uaUq(4AVLdVD{ED?+ zg})`5#zW(nm6PB~TO1jC=i+9v2b_Og0?mJ0y*$TLT;?hEu)?zXbzk$<*RwKD+4{Af K(zPC6(Z2yB-iBiU diff --git a/test-components/rpc/caller/src/lib.rs b/test-components/rpc/caller/src/lib.rs index 5a98fb330f..98491f2220 100644 --- a/test-components/rpc/caller/src/lib.rs +++ b/test-components/rpc/caller/src/lib.rs @@ -116,6 +116,17 @@ impl Guest for Component { vec![(name1, key1), (name2, key2), (name3, key3)] } + + fn bug_golem1265(s: String) -> Result<(), String> { + println!("Reproducer for golem issue #1265"); + let component_id = + env::var("COUNTERS_COMPONENT_ID").expect("COUNTERS_COMPONENT_ID not set"); + let counters_uri = Uri { + value: format!("urn:worker:{component_id}/bug1265"), + }; + let api = Api::new(&counters_uri); + api.blocking_bug_golem1265(&s) + } } fn create_use_and_drop_counters(counters_uri: &Uri) { diff --git a/test-components/rpc/caller/wit/caller.wit b/test-components/rpc/caller/wit/caller.wit index 4b777834da..8b77356f4f 100644 --- a/test-components/rpc/caller/wit/caller.wit +++ b/test-components/rpc/caller/wit/caller.wit @@ -12,4 +12,6 @@ world caller { export bug-wasm-rpc-i32: func(in: timeline-node) -> timeline-node; export ephemeral-test1: func() -> list>; + + export bug-golem1265: func(s: string) -> result<_, string>; } diff --git a/test-components/rpc/counters/src/lib.rs b/test-components/rpc/counters/src/lib.rs index 67c1addfbf..700e87f8bc 100644 --- a/test-components/rpc/counters/src/lib.rs +++ b/test-components/rpc/counters/src/lib.rs @@ -42,6 +42,11 @@ impl Guest for Component { fn bug_wasm_rpc_i32(in_: TimelineNode) -> TimelineNode { in_ } + + fn bug_golem1265(s: String) -> Result<(), String> { + eprintln!("Got {s}"); + Ok(()) + } } pub struct Counter { diff --git a/test-components/rpc/counters/wit/counters.wit b/test-components/rpc/counters/wit/counters.wit index eac156eb4f..8e2f1a606d 100644 --- a/test-components/rpc/counters/wit/counters.wit +++ b/test-components/rpc/counters/wit/counters.wit @@ -20,6 +20,8 @@ interface api { } bug-wasm-rpc-i32: func(in: timeline-node) -> timeline-node; + + bug-golem1265: func(s: string) -> result<_, string>; } world counters { diff --git a/wasm-rpc/src/wasmtime.rs b/wasm-rpc/src/wasmtime.rs index a3a29f4245..54b460d3f5 100644 --- a/wasm-rpc/src/wasmtime.rs +++ b/wasm-rpc/src/wasmtime.rs @@ -348,14 +348,21 @@ async fn decode_param_impl( Type::Result(ty) => match param { Value::Result(result) => match result { Ok(value) => { - let ok_ty = ty.ok().ok_or(EncodingError::ValueMismatch { - details: format!("in {context} could not get ok type"), - })?; let decoded_value = match value { - Some(v) => Some( - decode_param_impl(v, &ok_ty, resource_store, &format!("{context}.ok")) + Some(v) => { + let ok_ty = ty.ok().ok_or(EncodingError::ValueMismatch { + details: format!("in {context} could not get ok type"), + })?; + Some( + decode_param_impl( + v, + &ok_ty, + resource_store, + &format!("{context}.ok"), + ) .await?, - ), + ) + } None => None, }; match decoded_value { @@ -367,19 +374,21 @@ async fn decode_param_impl( } } Err(value) => { - let err_ty = ty.err().ok_or(EncodingError::ValueMismatch { - details: format!("in {context} could not get err type"), - })?; let decoded_value = match value { - Some(v) => Some( - decode_param_impl( - v, - &err_ty, - resource_store, - &format!("{context}.err"), + Some(v) => { + let err_ty = ty.err().ok_or(EncodingError::ValueMismatch { + details: format!("in {context} could not get err type"), + })?; + Some( + decode_param_impl( + v, + &err_ty, + resource_store, + &format!("{context}.err"), + ) + .await?, ) - .await?, - ), + } None => None, }; From 7143bfa85cc3058465a81788b9e46ad346af4b1f Mon Sep 17 00:00:00 2001 From: Daniel Vigovszky Date: Wed, 29 Jan 2025 18:09:19 +0100 Subject: [PATCH 2/3] Temorarily disabling parallel execution and junit reporting for worker executor tests to disable flakyness --- Makefile.toml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Makefile.toml b/Makefile.toml index 49d0289d5a..f99aef1441 100644 --- a/Makefile.toml +++ b/Makefile.toml @@ -192,29 +192,29 @@ args = [ description = "Runs worker executor tests only (group 1/8)" env = { "RUST_BACKTRACE" = "1", "WASMTIME_BACKTRACE_DETAILS" = "1", "RUST_LOG" = "info", "RUST_TEST_TIME_INTEGRATION" = "5000,30000" } script = ''' -cargo test --package golem-worker-executor-base --test integration :tag: -- --nocapture --report-time $JUNIT_OPTS -cargo test --package golem-worker-executor-base --test integration :tag:group1 -- --nocapture --report-time $JUNIT_OPTS +cargo test --package golem-worker-executor-base --test integration :tag: -- --report-time +cargo test --package golem-worker-executor-base --test integration :tag:group1 -- --report-time ''' [tasks.worker-executor-tests-group2] description = "Runs worker executor tests only (group 2/8)" env = { "RUST_BACKTRACE" = "1", "WASMTIME_BACKTRACE_DETAILS" = "1", "RUST_LOG" = "info", "RUST_TEST_TIME_INTEGRATION" = "5000,30000" } script = ''' -cargo test --package golem-worker-executor-base --test integration :tag:group2 -- --nocapture --report-time $JUNIT_OPTS +cargo test --package golem-worker-executor-base --test integration :tag:group2 -- --report-time ''' [tasks.worker-executor-tests-group3] description = "Runs worker executor tests only (group 3/8)" env = { "RUST_BACKTRACE" = "1", "WASMTIME_BACKTRACE_DETAILS" = "1", "RUST_LOG" = "info", "RUST_TEST_TIME_INTEGRATION" = "5000,30000" } script = ''' -cargo test --package golem-worker-executor-base --test integration :tag:group3 -- --nocapture --report-time $JUNIT_OPTS +cargo test --package golem-worker-executor-base --test integration :tag:group3 -- --report-time ''' [tasks.worker-executor-tests-group4] description = "Runs worker executor tests only (group 4/8)" env = { "RUST_BACKTRACE" = "1", "WASMTIME_BACKTRACE_DETAILS" = "1", "RUST_LOG" = "info", "RUST_TEST_TIME_INTEGRATION" = "5000,30000" } script = ''' -cargo test --package golem-worker-executor-base --test integration :tag:group4 -- --nocapture --report-time $JUNIT_OPTS --test-threads=1 +cargo test --package golem-worker-executor-base --test integration :tag:group4 -- --report-time $JUNIT_OPTS --test-threads= ''' # NOTE: temporarily set test-threads=1 to debug flakyness @@ -222,7 +222,7 @@ cargo test --package golem-worker-executor-base --test integration :tag:group4 - description = "Runs worker executor tests only (group 5/8)" env = { "RUST_BACKTRACE" = "1", "WASMTIME_BACKTRACE_DETAILS" = "1", "RUST_LOG" = "info", "RUST_TEST_TIME_INTEGRATION" = "5000,30000" } script = ''' -cargo test --package golem-worker-executor-base --test integration :tag:group5 -- --nocapture --report-time $JUNIT_OPTS +cargo test --package golem-worker-executor-base --test integration :tag:group5 -- --report-time ''' @@ -230,21 +230,21 @@ cargo test --package golem-worker-executor-base --test integration :tag:group5 - description = "Runs worker executor tests only (group 6/8)" env = { "RUST_BACKTRACE" = "1", "WASMTIME_BACKTRACE_DETAILS" = "1", "RUST_LOG" = "info", "RUST_TEST_TIME_INTEGRATION" = "5000,30000" } script = ''' -cargo test --package golem-worker-executor-base --test integration :tag:group6 -- --nocapture --report-time $JUNIT_OPTS +cargo test --package golem-worker-executor-base --test integration :tag:group6 -- --report-time ''' [tasks.worker-executor-tests-group7] description = "Runs worker executor tests only (group 7/8)" env = { "RUST_BACKTRACE" = "1", "WASMTIME_BACKTRACE_DETAILS" = "1", "RUST_LOG" = "info", "RUST_TEST_TIME_INTEGRATION" = "5000,30000" } script = ''' -cargo test --package golem-worker-executor-base --test integration :tag:group7 -- --nocapture --report-time $JUNIT_OPTS +cargo test --package golem-worker-executor-base --test integration :tag:group7 -- --report-time ''' [tasks.worker-executor-tests-group8] description = "Runs worker executor tests only (group 8/8)" env = { "RUST_BACKTRACE" = "1", "WASMTIME_BACKTRACE_DETAILS" = "1", "RUST_LOG" = "info", "RUST_TEST_TIME_INTEGRATION" = "5000,30000" } script = ''' -cargo test --package golem-worker-executor-base --test integration :tag:group8 -- --nocapture --report-time $JUNIT_OPTS +cargo test --package golem-worker-executor-base --test integration :tag:group8 -- --report-time ''' [tasks.integration-tests] From cc07e3bdd5e3a093d78543d5d16a121653e8edad Mon Sep 17 00:00:00 2001 From: Daniel Vigovszky Date: Wed, 29 Jan 2025 18:50:09 +0100 Subject: [PATCH 3/3] Fix --- Makefile.toml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Makefile.toml b/Makefile.toml index f99aef1441..8731aa9199 100644 --- a/Makefile.toml +++ b/Makefile.toml @@ -214,9 +214,8 @@ cargo test --package golem-worker-executor-base --test integration :tag:group3 - description = "Runs worker executor tests only (group 4/8)" env = { "RUST_BACKTRACE" = "1", "WASMTIME_BACKTRACE_DETAILS" = "1", "RUST_LOG" = "info", "RUST_TEST_TIME_INTEGRATION" = "5000,30000" } script = ''' -cargo test --package golem-worker-executor-base --test integration :tag:group4 -- --report-time $JUNIT_OPTS --test-threads= +cargo test --package golem-worker-executor-base --test integration :tag:group4 -- --report-time $JUNIT_OPTS ''' -# NOTE: temporarily set test-threads=1 to debug flakyness [tasks.worker-executor-tests-group5] description = "Runs worker executor tests only (group 5/8)" @@ -225,7 +224,6 @@ script = ''' cargo test --package golem-worker-executor-base --test integration :tag:group5 -- --report-time ''' - [tasks.worker-executor-tests-group6] description = "Runs worker executor tests only (group 6/8)" env = { "RUST_BACKTRACE" = "1", "WASMTIME_BACKTRACE_DETAILS" = "1", "RUST_LOG" = "info", "RUST_TEST_TIME_INTEGRATION" = "5000,30000" }