From 9525604ce5552932924082d36b95ce660cc1f657 Mon Sep 17 00:00:00 2001 From: Muhammad Azeez Date: Wed, 15 Jan 2025 20:48:03 +0300 Subject: [PATCH 01/10] add test case that fails --- extism_test.go | 42 ++++++++++++++++++++++++++++++++++++------ plugins/lib/Makefile | 2 ++ plugins/lib/go.mod | 5 +++++ plugins/lib/go.sum | 2 ++ plugins/lib/main.go | 18 ++++++++++++++++++ plugins/main/Makefile | 2 ++ plugins/main/go.mod | 5 +++++ plugins/main/go.sum | 2 ++ plugins/main/main.go | 24 ++++++++++++++++++++++++ wasm/lib.wasm | Bin 0 -> 275383 bytes wasm/main.wasm | Bin 0 -> 256489 bytes 11 files changed, 96 insertions(+), 6 deletions(-) create mode 100644 plugins/lib/Makefile create mode 100644 plugins/lib/go.mod create mode 100644 plugins/lib/go.sum create mode 100644 plugins/lib/main.go create mode 100644 plugins/main/Makefile create mode 100644 plugins/main/go.mod create mode 100644 plugins/main/go.sum create mode 100644 plugins/main/main.go create mode 100644 wasm/lib.wasm create mode 100644 wasm/main.wasm diff --git a/extism_test.go b/extism_test.go index 38b3584..ab8948d 100644 --- a/extism_test.go +++ b/extism_test.go @@ -5,6 +5,13 @@ import ( "context" "encoding/json" "fmt" + "log" + "os" + "strings" + "sync" + "testing" + "time" + observe "github.com/dylibso/observe-sdk/go" "github.com/dylibso/observe-sdk/go/adapter/stdout" "github.com/stretchr/testify/assert" @@ -13,12 +20,6 @@ import ( "github.com/tetratelabs/wazero/experimental" "github.com/tetratelabs/wazero/experimental/logging" "github.com/tetratelabs/wazero/sys" - "log" - "os" - "strings" - "sync" - "testing" - "time" ) func TestWasmUrl(t *testing.T) { @@ -1038,6 +1039,35 @@ func TestEnableExperimentalFeature(t *testing.T) { } } +func TestModuleLinking(t *testing.T) { + manifest := Manifest{ + Wasm: []Wasm{ + WasmFile{ + Path: "wasm/lib.wasm", + Name: "lib", + }, + WasmFile{ + Path: "wasm/main.wasm", + Name: "main", + }, + }, + } + + if plugin, ok := pluginInstance(t, manifest); ok { + defer plugin.Close(context.Background()) + + exit, output, err := plugin.Call("run_test", []byte("benjamin")) + + if assertCall(t, err, exit) { + expected := "Hello, BENJAMIN" + + actual := string(output) + + assert.Equal(t, expected, actual) + } + } +} + func BenchmarkInitialize(b *testing.B) { ctx := context.Background() cache := wazero.NewCompilationCache() diff --git a/plugins/lib/Makefile b/plugins/lib/Makefile new file mode 100644 index 0000000..19ed3fb --- /dev/null +++ b/plugins/lib/Makefile @@ -0,0 +1,2 @@ +build: + tinygo build -target wasi -o ../../wasm/lib.wasm main.go \ No newline at end of file diff --git a/plugins/lib/go.mod b/plugins/lib/go.mod new file mode 100644 index 0000000..4f6f590 --- /dev/null +++ b/plugins/lib/go.mod @@ -0,0 +1,5 @@ +module github.com/extism/extism-sdk-plugins-lib + +go 1.22 + +require github.com/extism/go-pdk v1.0.2 diff --git a/plugins/lib/go.sum b/plugins/lib/go.sum new file mode 100644 index 0000000..8897b44 --- /dev/null +++ b/plugins/lib/go.sum @@ -0,0 +1,2 @@ +github.com/extism/go-pdk v1.0.2 h1:UB7oTW3tw2zoMlsUdBEDAAbhQg9OudzgNeyCwQYZ730= +github.com/extism/go-pdk v1.0.2/go.mod h1:Gz+LIU/YCKnKXhgge8yo5Yu1F/lbv7KtKFkiCSzW/P4= diff --git a/plugins/lib/main.go b/plugins/lib/main.go new file mode 100644 index 0000000..023f085 --- /dev/null +++ b/plugins/lib/main.go @@ -0,0 +1,18 @@ +package main + +import ( + "strings" + + pdk "github.com/extism/go-pdk" +) + +//go:export capitalize +func Capitalize(ptr uint64) uint64 { + mem := pdk.FindMemory(ptr) + bytes := mem.ReadBytes() + capitalized := strings.ToUpper(string(bytes)) + out := pdk.AllocateString(capitalized) + return out.Offset() +} + +func main() {} diff --git a/plugins/main/Makefile b/plugins/main/Makefile new file mode 100644 index 0000000..87dae71 --- /dev/null +++ b/plugins/main/Makefile @@ -0,0 +1,2 @@ +build: + tinygo build -target wasi -o ../../wasm/main.wasm main.go \ No newline at end of file diff --git a/plugins/main/go.mod b/plugins/main/go.mod new file mode 100644 index 0000000..f4eeda5 --- /dev/null +++ b/plugins/main/go.mod @@ -0,0 +1,5 @@ +module github.com/extism/extism-sdk-plugins-main + +go 1.22 + +require github.com/extism/go-pdk v1.0.2 diff --git a/plugins/main/go.sum b/plugins/main/go.sum new file mode 100644 index 0000000..8897b44 --- /dev/null +++ b/plugins/main/go.sum @@ -0,0 +1,2 @@ +github.com/extism/go-pdk v1.0.2 h1:UB7oTW3tw2zoMlsUdBEDAAbhQg9OudzgNeyCwQYZ730= +github.com/extism/go-pdk v1.0.2/go.mod h1:Gz+LIU/YCKnKXhgge8yo5Yu1F/lbv7KtKFkiCSzW/P4= diff --git a/plugins/main/main.go b/plugins/main/main.go new file mode 100644 index 0000000..8d6bc0d --- /dev/null +++ b/plugins/main/main.go @@ -0,0 +1,24 @@ +package main + +import ( + "github.com/extism/go-pdk" +) + +//go:wasm-module lib +//export capitalize +func Capitalize(offset uint64) uint64 + +//go:export run_test +func run_test() int32 { + name := pdk.InputString() + + ptr := pdk.AllocateString(name) + capitalizedPtr := Capitalize(ptr.Offset()) + capitalizedMem := pdk.FindMemory(capitalizedPtr) + capitalized := string(capitalizedMem.ReadBytes()) + + pdk.OutputString("Hello, " + capitalized) + return 0 +} + +func main() {} diff --git a/wasm/lib.wasm b/wasm/lib.wasm new file mode 100644 index 0000000000000000000000000000000000000000..e98d1e4e52daf761d76f34c1842e1b9b34a13aac GIT binary patch literal 275383 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�>Fe-^i@DpD=IrqH zg14nY-(IM^i#Z;|A1?3SwH11KPd|ecF6!>23hh8M94Ie1C*ItQs-{S&N=&C6sL!FR zFMvD_R5gZxLekIlo`l*H_Prf}7cl~EVjEt$Kfs>{zkx_YQl|5b8GOZYOU=Lm$GBUG z{)y`3fm zkW|Dtu<{MO_5Y4PnaXX9;um-D&tu|`v54>w3L|+q{`l&;*pLjzOx%>yL-KQQ!9~c? z&yd(xb~Ij@gKT~UGe3uVWi&>+e?@fkeMlRlZ<5HsNUr2o^yXEx<@y6qC^;Lb42)k1 zH1%zuT1ddFDwWJ&OZWgXk3AMOrp5rh>>QvO$=nLGlEeR@kK!#(0r98Lz?d$lS=jv- z{`4{O(kvApJ0lwD-yvQ7j*_8k=xIdLm*5Yd^v#IO0S`%J9U`iN^xz+zKCbe*n^6zmJIAX^*36R5 z34Y}vhhV8={KRx+DtSbzR^yLU0-J0t;#vOU59iRmIir`9I@Vp^1EKRO z98x}j12=$ltAT??f?x2Fg2K4En{T)Pl^%kBC;@3TRk(}>adZxO8BHaYW2j`D4`D%0 zgR_}k)~}Q9 z!{3{bMIt}9k(X`cH5+-yMqJFKWX{^iKpP1VQ9}-gTsc#mp+eRa{=ULcp?AvX*UQQ>4po>_%up4YHpKJXyhp9ZcB}gtP#fz7~12Ib&T|T=^jcAIv?mh z9KweCSRuN&H?lh86MM*@@z)EWK3+u0=MfQp4v{v(y*zs)V0tg4E~&ZRm6m#0oTzmuK z7(ZWS7H=|9A2+%dnX=VBquGugxR?-}@y_8;)lL;xJA>f&WT=9-o1SiV<&nEhS7xLc zEfI)&!cX6iVresm?iRd04wO0b(~OpKrj`5NU78%{_%x%XcL}Ut_u@-GlyhHCGg^9= z#H9r!$Pm1fW;B<%&*XKSG~>D7*bEg;n(^F;SgfSBS|`nTZUX*D6+@gff{qG~>B!=U6&goHXOPpV}g;oHXOPBW)||oHXOP zJ#E59C(U^7OE%#`C(U^79Gh^tlV;olM6bBCE4y(%Zocy1{ENR9zcn(^Egn`5|>W;}Pg&9Rr0W;~a*jU45q8PC0J2E#kS zNi&}Nv(2%{Ni&{%+$Jn{(v0U0u&s1CX~uIkHsK5>&3NuJHsL%c&3LZeCS2^K8FzpG zHGB*SMdP2GX0*g6S$M6$Z`2|FiZr9{>)`w)mB4M&0}IN9wvR&8RyGVtODHVfVD+-GQ>HL(`0w%6iKEG!i(ashMd;-S3&a z=>yV?x?i^VA!$b40bp1D9!tfC(u^ijFi=G|)vMGKNJypq0Z6KJsyCtA@}?U9)YwI^ zwUL~0d}y7TM?a6t(?A_nbM;9|eHc;K&0KSJq<~Vt0%s(g)Y+K+l$$>W#oPKTp1Hjv zDr4FekaYx9X^_*PT7$d>HUG~5b*=;c+D^ZIY6xtLr8D51!Svx*YZG1`1Ih#$`Z_Kc zNHF@f*2h49gef0oPV70DkXVWonWVg`z)-4lugBcEPUiQkuvy0h;>R|B{BaX?RQ3dj z4g>z7idNk7cB-n8&mdK@^lx--z7QshEazuC&i<$~d&@Pr*N)(;yn2?yd2d0O+>#}u@9n8)42X2n;i6y0}=hPWcU&!#QB+I zkcH~|>`KF_Gm-i{dpu|*RD$!8WXLi43Zp7}M2}Jo7)@5`XyP=2-z}-`ZyL5?8U`0p z+UayP&yNS<+i}lbe1=l9^=qH;Aq#-;slfQFV;0FeTyqd4Vi|BS`Op*5M+nKc(02?y zl4@udU&^SjhOsMrQV-&N%HQKQ;Ld6{*A81*+F9-Tj1Pu|q@1o8O$jK@n@y%J*JoT4 z-tFeT0J~pGce_60y4oH$cL0V%Ui7#=tdNQD)+N%O{R6O&-maC%yfDzQ�(v|T;j^%)<2FSNyXCqRif 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 literal 0 HcmV?d00001 diff --git a/wasm/main.wasm b/wasm/main.wasm new file mode 100644 index 0000000000000000000000000000000000000000..258bed5be9455efaf5440811f8824147259caa6e GIT binary patch literal 256489 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

0(jj?l$BGx}T3u>rQ#Co%{k6mgMv3|&D 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%0D0(d2mJ9t(Mh_Z8A1rk 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 aS*T3jySF;De(JESN=$wpA9$ULdi;Mfy~WG` literal 0 HcmV?d00001 From b064e7d8af8b8b0557ecdfdaf52d7ea5135e1363 Mon Sep 17 00:00:00 2001 From: Muhammad Azeez Date: Wed, 15 Jan 2025 21:03:56 +0300 Subject: [PATCH 02/10] fix: make sure we instantiate non-main modules --- plugin.go | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/plugin.go b/plugin.go index c1139ab..8a04951 100644 --- a/plugin.go +++ b/plugin.go @@ -1,18 +1,20 @@ +// new package extism import ( "context" "errors" "fmt" - observe "github.com/dylibso/observe-sdk/go" - "github.com/tetratelabs/wazero" - "github.com/tetratelabs/wazero/api" - "github.com/tetratelabs/wazero/imports/wasi_snapshot_preview1" "os" "strconv" "strings" "sync/atomic" "time" + + observe "github.com/dylibso/observe-sdk/go" + "github.com/tetratelabs/wazero" + "github.com/tetratelabs/wazero/api" + "github.com/tetratelabs/wazero/imports/wasi_snapshot_preview1" ) type CompiledPlugin struct { @@ -20,6 +22,7 @@ type CompiledPlugin struct { main wazero.CompiledModule extism wazero.CompiledModule env api.Module + modules map[string]wazero.CompiledModule // when a module (main) is instantiated, it may have a module name that's added // to the data section of the wasm. If this is the case, we won't be able to @@ -120,6 +123,7 @@ func NewCompiledPlugin( observeAdapter: config.ObserveAdapter, observeOptions: config.ObserveOptions, enableHttpResponseHeaders: config.EnableHttpResponseHeaders, + modules: make(map[string]wazero.CompiledModule), } if config.EnableWasi { @@ -158,19 +162,18 @@ func NewCompiledPlugin( // - If there is only one module in the manifest then that is the main module by default // - Otherwise the last module listed is the main module - modules := map[string]wazero.CompiledModule{} for i, wasm := range manifest.Wasm { data, err := wasm.ToWasmData(ctx) if err != nil { return nil, err } - _, mainExists := modules["main"] + _, mainExists := p.modules["main"] if data.Name == "" || i == len(manifest.Wasm)-1 && !mainExists { data.Name = "main" } - _, okm := modules[data.Name] + _, okm := p.modules[data.Name] if data.Name == "extism:host/env" || okm { return nil, fmt.Errorf("module name collision: '%s'", data.Name) @@ -194,7 +197,7 @@ func NewCompiledPlugin( if data.Name == "main" { p.main = m } else { - modules[data.Name] = m + p.modules[data.Name] = m } } @@ -251,8 +254,6 @@ func (p *CompiledPlugin) Instance(ctx context.Context, config PluginInstanceConf if err != nil { return nil, fmt.Errorf("failed to initialize Observe Adapter: %v", err) } - - trace.Finish() } // Compile and instantiate the extism runtime. This runtime is stateful and needs to be @@ -266,6 +267,20 @@ func (p *CompiledPlugin) Instance(ctx context.Context, config PluginInstanceConf } closers = append(closers, extism.Close) + // Instantiate all non-main modules first + instancedModules := make(map[string]api.Module) + for name, module := range p.modules { + instance, err := p.runtime.InstantiateModule(ctx, module, moduleConfig.WithName(name)) + if err != nil { + for _, m := range instancedModules { + m.Close(ctx) + } + return nil, fmt.Errorf("instantiating module %s: %w", name, err) + } + instancedModules[name] = instance + closers = append(closers, instance.Close) + } + main, err := p.runtime.InstantiateModule(ctx, p.main, moduleConfig) if err != nil { return nil, fmt.Errorf("instantiating module: %w", err) From ddc688323bf54edcd08f340ed8fb4d3b0ea91442 Mon Sep 17 00:00:00 2001 From: Muhammad Azeez Date: Thu, 16 Jan 2025 15:58:10 +0300 Subject: [PATCH 03/10] address PR feedback --- plugin.go | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/plugin.go b/plugin.go index 8a04951..10c1119 100644 --- a/plugin.go +++ b/plugin.go @@ -162,14 +162,14 @@ func NewCompiledPlugin( // - If there is only one module in the manifest then that is the main module by default // - Otherwise the last module listed is the main module + foundMain := false for i, wasm := range manifest.Wasm { data, err := wasm.ToWasmData(ctx) if err != nil { return nil, err } - _, mainExists := p.modules["main"] - if data.Name == "" || i == len(manifest.Wasm)-1 && !mainExists { + if data.Name == "" || i == len(manifest.Wasm)-1 && !foundMain { data.Name = "main" } @@ -194,8 +194,10 @@ func NewCompiledPlugin( if err != nil { return nil, err } + if data.Name == "main" { p.main = m + foundMain = true } else { p.modules[data.Name] = m } @@ -223,7 +225,6 @@ func (p *CompiledPlugin) Instance(ctx context.Context, config PluginInstanceConf if moduleConfig == nil { moduleConfig = wazero.NewModuleConfig() } - moduleConfig = moduleConfig.WithName(strconv.Itoa(int(p.instanceCount.Add(1)))) // NOTE: this is only necessary for guest modules because // host modules have the same access privileges as the host itself @@ -265,6 +266,7 @@ func (p *CompiledPlugin) Instance(ctx context.Context, config PluginInstanceConf if err != nil { return nil, fmt.Errorf("instantiating extism module: %w", err) } + closers = append(closers, extism.Close) // Instantiate all non-main modules first @@ -272,19 +274,27 @@ func (p *CompiledPlugin) Instance(ctx context.Context, config PluginInstanceConf for name, module := range p.modules { instance, err := p.runtime.InstantiateModule(ctx, module, moduleConfig.WithName(name)) if err != nil { - for _, m := range instancedModules { - m.Close(ctx) + for _, closer := range closers { + closer(ctx) } + return nil, fmt.Errorf("instantiating module %s: %w", name, err) } + instancedModules[name] = instance closers = append(closers, instance.Close) } - main, err := p.runtime.InstantiateModule(ctx, p.main, moduleConfig) + mainModuleName := strconv.Itoa(int(p.instanceCount.Add(1))) + main, err := p.runtime.InstantiateModule(ctx, p.main, moduleConfig.WithName(mainModuleName)) if err != nil { + for _, closer := range closers { + closer(ctx) + } + return nil, fmt.Errorf("instantiating module: %w", err) } + closers = append(closers, main.Close) p.maxHttp = int64(1024 * 1024 * 50) @@ -301,6 +311,7 @@ func (p *CompiledPlugin) Instance(ctx context.Context, config PluginInstanceConf if p.enableHttpResponseHeaders { headers = map[string]string{} } + instance := &Plugin{ close: closers, extism: extism, @@ -321,5 +332,6 @@ func (p *CompiledPlugin) Instance(ctx context.Context, config PluginInstanceConf traceCtx: trace, } instance.guestRuntime = detectGuestRuntime(ctx, instance) + return instance, nil } From 403e560cdb83b527001aa262e8665dfd9c211ade Mon Sep 17 00:00:00 2001 From: Muhammad Azeez Date: Tue, 21 Jan 2025 16:36:41 +0300 Subject: [PATCH 04/10] can't instantiate multiple instances when we have linked modules --- extism_test.go | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/extism_test.go b/extism_test.go index ab8948d..bd005c6 100644 --- a/extism_test.go +++ b/extism_test.go @@ -1068,6 +1068,54 @@ func TestModuleLinking(t *testing.T) { } } +func TestModuleLinkingMultipleInstances(t *testing.T) { + manifest := Manifest{ + Wasm: []Wasm{ + WasmFile{ + Path: "wasm/lib.wasm", + Name: "lib", + }, + WasmFile{ + Path: "wasm/main.wasm", + Name: "main", + }, + }, + } + + ctx := context.Background() + config := wasiPluginConfig() + + compiledPlugin, err := NewCompiledPlugin(ctx, manifest, PluginConfig{ + EnableWasi: true, + }, []HostFunction{}) + + if err != nil { + t.Fatalf("Could not create plugin: %v", err) + } + + for i := 0; i < 3; i++ { + plugin, err := compiledPlugin.Instance(ctx, config) + if err != nil { + t.Fatalf("Could not create plugin instance: %v", err) + } + // purposefully not closing the plugin instance + + for j := 0; j < 3; j++ { + + exit, output, err := plugin.Call("run_test", []byte("benjamin")) + + if assertCall(t, err, exit) { + expected := "Hello, BENJAMIN" + + actual := string(output) + + assert.Equal(t, expected, actual) + } + } + } + +} + func BenchmarkInitialize(b *testing.B) { ctx := context.Background() cache := wazero.NewCompilationCache() From c8ad48d8ab3b614db534aaaf04b767fd98084bba Mon Sep 17 00:00:00 2001 From: Muhammad Azeez Date: Tue, 21 Jan 2025 16:40:32 +0300 Subject: [PATCH 05/10] only allow one module with empty name --- plugin.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/plugin.go b/plugin.go index 10c1119..959040b 100644 --- a/plugin.go +++ b/plugin.go @@ -169,7 +169,7 @@ func NewCompiledPlugin( return nil, err } - if data.Name == "" || i == len(manifest.Wasm)-1 && !foundMain { + if data.Name == "" || i == len(manifest.Wasm)-1 { data.Name = "main" } @@ -196,6 +196,10 @@ func NewCompiledPlugin( } if data.Name == "main" { + if foundMain { + return nil, errors.New("can't have more than one main module") + } + p.main = m foundMain = true } else { From 88fb82688f49377d6bbfb4bc3d1ed984360c7667 Mon Sep 17 00:00:00 2001 From: Muhammad Azeez Date: Tue, 21 Jan 2025 16:41:07 +0300 Subject: [PATCH 06/10] fix condition --- plugin.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin.go b/plugin.go index 959040b..bb65fd4 100644 --- a/plugin.go +++ b/plugin.go @@ -169,7 +169,7 @@ func NewCompiledPlugin( return nil, err } - if data.Name == "" || i == len(manifest.Wasm)-1 { + if (data.Name == "" || i == len(manifest.Wasm)-1) && !foundMain { data.Name = "main" } From 1d744f0b6b18b1c0f126a57062324d1d863bd0cb Mon Sep 17 00:00:00 2001 From: Muhammad Azeez Date: Thu, 23 Jan 2025 18:05:59 +0300 Subject: [PATCH 07/10] fix: wrap the non-main modules in a host module to solve naming collisions --- extism.go | 18 ++++---- extism_test.go | 87 ++++++++++++++++++++++++++++++++++++ plugin.go | 117 ++++++++++++++++++++++++++++++++++++++++--------- runtime.go | 5 ++- 4 files changed, 194 insertions(+), 33 deletions(-) diff --git a/extism.go b/extism.go index 1e8c120..56aaee7 100644 --- a/extism.go +++ b/extism.go @@ -110,12 +110,10 @@ type Plugin struct { close []func(ctx context.Context) error extism api.Module - //Runtime *Runtime - //Main Module - module api.Module - Timeout time.Duration - Config map[string]string - // NOTE: maybe we can have some nice methods for getting/setting vars + mainModule api.Module + modules map[string]api.Module + Timeout time.Duration + Config map[string]string Var map[string][]byte AllowedHosts []string AllowedPaths map[string]string @@ -135,7 +133,7 @@ func logStd(level LogLevel, message string) { } func (p *Plugin) Module() *Module { - return &Module{inner: p.module} + return &Module{inner: p.mainModule} } // SetLogger sets a custom logging callback @@ -440,7 +438,7 @@ func (p *Plugin) GetErrorWithContext(ctx context.Context) string { // FunctionExists returns true when the named function is present in the plugin's main Module func (p *Plugin) FunctionExists(name string) bool { - return p.module.ExportedFunction(name) != nil + return p.mainModule.ExportedFunction(name) != nil } // Call a function by name with the given input, returning the output @@ -466,7 +464,7 @@ func (p *Plugin) CallWithContext(ctx context.Context, name string, data []byte) ctx = context.WithValue(ctx, InputOffsetKey("inputOffset"), intputOffset) - var f = p.module.ExportedFunction(name) + var f = p.mainModule.ExportedFunction(name) if f == nil { return 1, []byte{}, fmt.Errorf("unknown function: %s", name) @@ -498,7 +496,7 @@ func (p *Plugin) CallWithContext(ctx context.Context, name string, data []byte) if exitCode == 0 { // It's possible for the function to return 0 as an error code, even // if the module is closed. - if p.module.IsClosed() { + if p.mainModule.IsClosed() { return 0, nil, fmt.Errorf("module is closed") } err = nil diff --git a/extism_test.go b/extism_test.go index bd005c6..9f4908a 100644 --- a/extism_test.go +++ b/extism_test.go @@ -1113,7 +1113,94 @@ func TestModuleLinkingMultipleInstances(t *testing.T) { } } } +} + +func TestCompiledModuleMultipleInstances(t *testing.T) { + manifest := Manifest{ + Wasm: []Wasm{ + WasmFile{ + Path: "wasm/count_vowels.wasm", + Name: "main", + }, + }, + } + + ctx := context.Background() + config := wasiPluginConfig() + + compiledPlugin, err := NewCompiledPlugin(ctx, manifest, PluginConfig{ + EnableWasi: true, + }, []HostFunction{}) + + if err != nil { + t.Fatalf("Could not create plugin: %v", err) + } + + var wg sync.WaitGroup + numInstances := 3000 + + // Create and test instances in parallel + for i := 0; i < numInstances; i++ { + wg.Add(1) + go func(instanceNum int) { + defer wg.Done() + + plugin, err := compiledPlugin.Instance(ctx, config) + if err != nil { + t.Errorf("Could not create plugin instance %d: %v", instanceNum, err) + return + } + // purposefully not closing the plugin instance + + // Sequential calls for this instance + for j := 0; j < 3; j++ { + exit, _, err := plugin.Call("count_vowels", []byte("benjamin")) + if err != nil { + t.Errorf("Instance %d, call %d failed: %v", instanceNum, j, err) + return + } + if exit != 0 { + t.Errorf("Instance %d, call %d returned non-zero exit code: %d", instanceNum, j, exit) + } + } + }(i) + } + wg.Wait() +} + +func TestMultipleCallsOutputParallel(t *testing.T) { + manifest := manifest("count_vowels.wasm") + numInstances := 3 + + var wg sync.WaitGroup + + // Create and test instances in parallel + for i := 0; i < numInstances; i++ { + wg.Add(1) + go func(instanceNum int) { + defer wg.Done() + + if plugin, ok := pluginInstance(t, manifest); ok { + defer plugin.Close(context.Background()) + + // Sequential calls for this instance + exit, output1, err := plugin.Call("count_vowels", []byte("aaa")) + if !assertCall(t, err, exit) { + return + } + exit, output2, err := plugin.Call("count_vowels", []byte("bbba")) + if !assertCall(t, err, exit) { + return + } + + assert.Equal(t, `{"count":3,"total":3,"vowels":"aeiouAEIOU"}`, string(output1)) + assert.Equal(t, `{"count":1,"total":4,"vowels":"aeiouAEIOU"}`, string(output2)) + } + }(i) + } + + wg.Wait() } func BenchmarkInitialize(b *testing.B) { diff --git a/plugin.go b/plugin.go index bb65fd4..92057bb 100644 --- a/plugin.go +++ b/plugin.go @@ -6,7 +6,6 @@ import ( "errors" "fmt" "os" - "strconv" "strings" "sync/atomic" "time" @@ -85,6 +84,24 @@ func NewPlugin( return p, nil } +func calculateMaxHttp(manifest Manifest) int64 { + // Default is 50MB + maxHttp := int64(1024 * 1024 * 50) + if manifest.Memory != nil && manifest.Memory.MaxHttpResponseBytes >= 0 { + maxHttp = manifest.Memory.MaxHttpResponseBytes + } + return maxHttp +} + +func calculateMaxVar(manifest Manifest) int64 { + // Default is 1MB + maxVar := int64(1024 * 1024) + if manifest.Memory != nil && manifest.Memory.MaxVarBytes >= 0 { + maxVar = manifest.Memory.MaxVarBytes + } + return maxVar +} + // NewCompiledPlugin creates a compiled plugin that is ready to be instantiated. // You can instantiate the plugin multiple times using the CompiledPlugin.Instance // method and run those instances concurrently. @@ -124,6 +141,8 @@ func NewCompiledPlugin( observeOptions: config.ObserveOptions, enableHttpResponseHeaders: config.EnableHttpResponseHeaders, modules: make(map[string]wazero.CompiledModule), + maxHttp: calculateMaxHttp(manifest), + maxVar: calculateMaxVar(manifest), } if config.EnableWasi { @@ -190,7 +209,7 @@ func NewCompiledPlugin( p.wasmBytes = data.Data } - m, err := p.runtime.CompileModule(ctx, data.Data) + compiledModule, err := p.runtime.CompileModule(ctx, data.Data) if err != nil { return nil, err } @@ -199,11 +218,16 @@ func NewCompiledPlugin( if foundMain { return nil, errors.New("can't have more than one main module") } - - p.main = m + p.main = compiledModule foundMain = true } else { - p.modules[data.Name] = m + // Store compiled module for instantiation + p.modules[data.Name] = compiledModule + // Create wrapper with original name that will forward calls to the actual module instance. See createModuleWrapper for more details. + _, err = createModuleWrapper(ctx, p.runtime, data.Name, compiledModule) + if err != nil { + return nil, fmt.Errorf("failed to create wrapper for %s: %w", data.Name, err) + } } } @@ -218,11 +242,72 @@ func NewCompiledPlugin( return &p, nil } +// createModuleWrapper creates a host module that acts as a proxy for module instances. +// In Wazero, modules with the same name cannot be instantiated multiple times in the same runtime. +// However, we need each Plugin instance to have its own copy of each module for isolation. To solve this, we: +// 1. Create a host module wrapper that keeps the original module name (needed for imports to work) +// 2. Instantiate actual module copies with unique names for each Plugin +// 3. The wrapper forwards function calls to the correct module instance for each Plugin +func createModuleWrapper(ctx context.Context, rt wazero.Runtime, name string, compiled wazero.CompiledModule) (api.Module, error) { + builder := rt.NewHostModuleBuilder(name) + + // Create proxy functions for each exported function from the original module. + // These proxies will forward calls to the appropriate module instance. + for _, export := range compiled.ExportedFunctions() { + exportName := export.Name() + + // Skip wrapping the _start function since it's automatically called by wazero during instantiation. + // The wrapper functions require a Plugin instance in the context to work, but during wrapper + // instantiation there is no Plugin instance yet. + if exportName == "_start" { + continue + } + + // Create a proxy function that: + // 1. Gets the calling Plugin instance from context + // 2. Looks up that Plugin's copy of this module + // 3. Forwards the call to the actual function + wrapper := func(callCtx context.Context, mod api.Module, stack []uint64) { + // Get the Plugin instance that's making this call + plugin, ok := callCtx.Value(PluginCtxKey("plugin")).(*Plugin) + if !ok { + panic("Invalid context, `plugin` key not found") + } + + // Get this Plugin's instance of the module + actualModule, ok := plugin.modules[name] + if !ok { + panic(fmt.Sprintf("module %s not found in plugin", name)) + } + + // Forward the call to the actual module instance + fn := actualModule.ExportedFunction(exportName) + if fn == nil { + panic(fmt.Sprintf("function %s not found in module %s", exportName, name)) + } + + err := fn.CallWithStack(callCtx, stack) + if err != nil { + panic(err) + } + } + + // Export the proxy function with the same name and signature as the original + builder.NewFunctionBuilder(). + WithGoModuleFunction(api.GoModuleFunc(wrapper), export.ParamTypes(), export.ResultTypes()). + Export(exportName) + } + + return builder.Instantiate(ctx) +} + func (p *CompiledPlugin) Close(ctx context.Context) error { return p.runtime.Close(ctx) } func (p *CompiledPlugin) Instance(ctx context.Context, config PluginInstanceConfig) (*Plugin, error) { + instanceNum := p.instanceCount.Add(1) + var closers []func(ctx context.Context) error moduleConfig := config.ModuleConfig @@ -275,21 +360,20 @@ func (p *CompiledPlugin) Instance(ctx context.Context, config PluginInstanceConf // Instantiate all non-main modules first instancedModules := make(map[string]api.Module) - for name, module := range p.modules { - instance, err := p.runtime.InstantiateModule(ctx, module, moduleConfig.WithName(name)) + for name, compiledModule := range p.modules { + uniqueName := fmt.Sprintf("%s_%d", name, instanceNum) + instance, err := p.runtime.InstantiateModule(ctx, compiledModule, moduleConfig.WithName(uniqueName)) if err != nil { for _, closer := range closers { closer(ctx) } - return nil, fmt.Errorf("instantiating module %s: %w", name, err) } - instancedModules[name] = instance closers = append(closers, instance.Close) } - mainModuleName := strconv.Itoa(int(p.instanceCount.Add(1))) + mainModuleName := fmt.Sprintf("main_%d", instanceNum) main, err := p.runtime.InstantiateModule(ctx, p.main, moduleConfig.WithName(mainModuleName)) if err != nil { for _, closer := range closers { @@ -301,16 +385,6 @@ func (p *CompiledPlugin) Instance(ctx context.Context, config PluginInstanceConf closers = append(closers, main.Close) - p.maxHttp = int64(1024 * 1024 * 50) - if p.manifest.Memory != nil && p.manifest.Memory.MaxHttpResponseBytes >= 0 { - p.maxHttp = p.manifest.Memory.MaxHttpResponseBytes - } - - p.maxVar = int64(1024 * 1024) - if p.manifest.Memory != nil && p.manifest.Memory.MaxVarBytes >= 0 { - p.maxVar = p.manifest.Memory.MaxVarBytes - } - var headers map[string]string = nil if p.enableHttpResponseHeaders { headers = map[string]string{} @@ -320,7 +394,8 @@ func (p *CompiledPlugin) Instance(ctx context.Context, config PluginInstanceConf close: closers, extism: extism, hasWasi: p.hasWasi, - module: main, + mainModule: main, + modules: instancedModules, Timeout: time.Duration(p.manifest.Timeout) * time.Millisecond, Config: p.manifest.Config, Var: make(map[string][]byte), diff --git a/runtime.go b/runtime.go index 61393b0..d08d39a 100644 --- a/runtime.go +++ b/runtime.go @@ -2,6 +2,7 @@ package extism import ( "context" + "github.com/tetratelabs/wazero/api" ) @@ -22,12 +23,12 @@ type guestRuntime struct { } func detectGuestRuntime(ctx context.Context, p *Plugin) guestRuntime { - runtime, ok := haskellRuntime(ctx, p, p.module) + runtime, ok := haskellRuntime(ctx, p, p.mainModule) if ok { return runtime } - runtime, ok = wasiRuntime(ctx, p, p.module) + runtime, ok = wasiRuntime(ctx, p, p.mainModule) if ok { return runtime } From 444f5738d915043fe48ae004eafb4429db83e370 Mon Sep 17 00:00:00 2001 From: Muhammad Azeez Date: Thu, 23 Jan 2025 18:24:36 +0300 Subject: [PATCH 08/10] fix build --- extism.go | 14 +++++--------- extism_test.go | 4 ++-- plugin.go | 4 +--- runtime.go | 24 ++++++++++++------------ 4 files changed, 20 insertions(+), 26 deletions(-) diff --git a/extism.go b/extism.go index 82f88f9..2d2b977 100644 --- a/extism.go +++ b/extism.go @@ -37,10 +37,9 @@ func RuntimeVersion() string { // Runtime represents the Extism plugin's runtime environment, including the underlying Wazero runtime and modules. type Runtime struct { - Wazero wazero.Runtime - Extism api.Module - Env api.Module - hasWasi bool + Wazero wazero.Runtime + Extism api.Module + Env api.Module } // PluginInstanceConfig contains configuration options for the Extism plugin. @@ -112,15 +111,12 @@ func (l LogLevel) String() string { // Plugin is used to call WASM functions type Plugin struct { - close []func(ctx context.Context) error - extism api.Module + close []func(ctx context.Context) error + extism api.Module mainModule api.Module modules map[string]api.Module Timeout time.Duration Config map[string]string - module api.Module - Timeout time.Duration - Config map[string]string Var map[string][]byte AllowedHosts []string AllowedPaths map[string]string diff --git a/extism_test.go b/extism_test.go index 9f4908a..0586f39 100644 --- a/extism_test.go +++ b/extism_test.go @@ -1137,7 +1137,7 @@ func TestCompiledModuleMultipleInstances(t *testing.T) { } var wg sync.WaitGroup - numInstances := 3000 + numInstances := 30 // Create and test instances in parallel for i := 0; i < numInstances; i++ { @@ -1170,7 +1170,7 @@ func TestCompiledModuleMultipleInstances(t *testing.T) { func TestMultipleCallsOutputParallel(t *testing.T) { manifest := manifest("count_vowels.wasm") - numInstances := 3 + numInstances := 30 var wg sync.WaitGroup diff --git a/plugin.go b/plugin.go index c98a3f5..605c845 100644 --- a/plugin.go +++ b/plugin.go @@ -317,8 +317,6 @@ func (p *CompiledPlugin) Instance(ctx context.Context, config PluginInstanceConf moduleConfig = wazero.NewModuleConfig() } - moduleConfig = moduleConfig.WithName(strconv.Itoa(int(p.instanceCount.Add(1)))) - // NOTE: we don't want wazero to call the start function, we will initialize // the guest runtime manually. // See: https://github.com/extism/go-sdk/pull/1#issuecomment-1650527495 @@ -417,7 +415,7 @@ func (p *CompiledPlugin) Instance(ctx context.Context, config PluginInstanceConf log: logStd, traceCtx: trace, } - instance.guestRuntime = detectGuestRuntime(ctx, instance) + instance.guestRuntime = detectGuestRuntime(instance) return instance, nil } diff --git a/runtime.go b/runtime.go index d08d39a..4e6e228 100644 --- a/runtime.go +++ b/runtime.go @@ -22,13 +22,13 @@ type guestRuntime struct { initialized bool } -func detectGuestRuntime(ctx context.Context, p *Plugin) guestRuntime { - runtime, ok := haskellRuntime(ctx, p, p.mainModule) +func detectGuestRuntime(p *Plugin) guestRuntime { + runtime, ok := haskellRuntime(p, p.mainModule) if ok { return runtime } - runtime, ok = wasiRuntime(ctx, p, p.mainModule) + runtime, ok = wasiRuntime(p, p.mainModule) if ok { return runtime } @@ -40,7 +40,7 @@ func detectGuestRuntime(ctx context.Context, p *Plugin) guestRuntime { // Check for Haskell runtime initialization functions // Initialize Haskell runtime if `hs_init` and `hs_exit` are present, // by calling the `hs_init` export -func haskellRuntime(ctx context.Context, p *Plugin, m api.Module) (guestRuntime, bool) { +func haskellRuntime(p *Plugin, m api.Module) (guestRuntime, bool) { initFunc := m.ExportedFunction("hs_init") if initFunc == nil { return guestRuntime{}, false @@ -74,7 +74,7 @@ func haskellRuntime(ctx context.Context, p *Plugin, m api.Module) (guestRuntime, } // Check for initialization functions defined by the WASI standard -func wasiRuntime(ctx context.Context, p *Plugin, m api.Module) (guestRuntime, bool) { +func wasiRuntime(p *Plugin, m api.Module) (guestRuntime, bool) { if !p.hasWasi { return guestRuntime{}, false } @@ -82,16 +82,16 @@ func wasiRuntime(ctx context.Context, p *Plugin, m api.Module) (guestRuntime, bo // WASI supports two modules: Reactors and Commands // we prioritize Reactors over Commands // see: https://github.com/WebAssembly/WASI/blob/main/legacy/application-abi.md - if r, ok := reactorModule(ctx, m, p); ok { + if r, ok := reactorModule(m, p); ok { return r, ok } - return commandModule(ctx, m, p) + return commandModule(m, p) } // Check for `_initialize` this is used by WASI to initialize certain interfaces. -func reactorModule(ctx context.Context, m api.Module, p *Plugin) (guestRuntime, bool) { - init := findFunc(ctx, m, p, "_initialize") +func reactorModule(m api.Module, p *Plugin) (guestRuntime, bool) { + init := findFunc(m, p, "_initialize") if init == nil { return guestRuntime{}, false } @@ -104,8 +104,8 @@ func reactorModule(ctx context.Context, m api.Module, p *Plugin) (guestRuntime, // Check for `__wasm__call_ctors`, this is used by WASI to // initialize certain interfaces. -func commandModule(ctx context.Context, m api.Module, p *Plugin) (guestRuntime, bool) { - init := findFunc(ctx, m, p, "__wasm_call_ctors") +func commandModule(m api.Module, p *Plugin) (guestRuntime, bool) { + init := findFunc(m, p, "__wasm_call_ctors") if init == nil { return guestRuntime{}, false } @@ -116,7 +116,7 @@ func commandModule(ctx context.Context, m api.Module, p *Plugin) (guestRuntime, return guestRuntime{runtimeType: Wasi, init: init}, true } -func findFunc(ctx context.Context, m api.Module, p *Plugin, name string) func(context.Context) error { +func findFunc(m api.Module, p *Plugin, name string) func(context.Context) error { initFunc := m.ExportedFunction(name) if initFunc == nil { return nil From 439953ce9fb2bfaaa3bf8560a3941f62b0e8ca19 Mon Sep 17 00:00:00 2001 From: Muhammad Azeez Date: Thu, 23 Jan 2025 18:26:22 +0300 Subject: [PATCH 09/10] add a zero --- extism_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extism_test.go b/extism_test.go index 0586f39..5c8f109 100644 --- a/extism_test.go +++ b/extism_test.go @@ -1137,7 +1137,7 @@ func TestCompiledModuleMultipleInstances(t *testing.T) { } var wg sync.WaitGroup - numInstances := 30 + numInstances := 300 // Create and test instances in parallel for i := 0; i < numInstances; i++ { @@ -1170,7 +1170,7 @@ func TestCompiledModuleMultipleInstances(t *testing.T) { func TestMultipleCallsOutputParallel(t *testing.T) { manifest := manifest("count_vowels.wasm") - numInstances := 30 + numInstances := 300 var wg sync.WaitGroup From 8acf488107f0b46d71c03b799c54702bda48d286 Mon Sep 17 00:00:00 2001 From: Edoardo Vacchi Date: Thu, 30 Jan 2025 09:34:14 +0100 Subject: [PATCH 10/10] Ensure the init func is invoked an all dependencies before main Signed-off-by: Edoardo Vacchi --- extism.go | 2 +- runtime.go | 73 +++++++++++++++++++++++++++++++++++++++++++----------- 2 files changed, 60 insertions(+), 15 deletions(-) diff --git a/extism.go b/extism.go index 2d2b977..def51fa 100644 --- a/extism.go +++ b/extism.go @@ -475,7 +475,7 @@ func (p *Plugin) CallWithContext(ctx context.Context, name string, data []byte) return 1, []byte{}, fmt.Errorf("function %s has %v results, expected 0 or 1", name, n) } - var isStart = name == "_start" + var isStart = name == "_start" || name == "_initialize" if p.guestRuntime.init != nil && !isStart && !p.guestRuntime.initialized { err := p.guestRuntime.init(ctx) if err != nil { diff --git a/runtime.go b/runtime.go index 4e6e228..5aa4230 100644 --- a/runtime.go +++ b/runtime.go @@ -17,33 +17,78 @@ const ( ) type guestRuntime struct { + mainRuntime moduleRuntime + runtimes map[string]moduleRuntime + init func(ctx context.Context) error + initialized bool +} + +type moduleRuntime struct { runtimeType runtimeType init func(ctx context.Context) error initialized bool } +// detectGuestRuntime detects the runtime of the main module and all other modules +// it returns a guest runtime with an initialization function specific that invokes +// the initialization function of all the modules, with the main module last. func detectGuestRuntime(p *Plugin) guestRuntime { - runtime, ok := haskellRuntime(p, p.mainModule) + r := guestRuntime{runtimes: make(map[string]moduleRuntime)} + + r.mainRuntime = detectModuleRuntime(p, p.mainModule) + for k, m := range p.modules { + r.runtimes[k] = detectModuleRuntime(p, m) + } + + r.init = func(ctx context.Context) error { + + for k, v := range r.runtimes { + p.Logf(LogLevelDebug, "Initializing runtime for module %v", k) + err := v.init(ctx) + if err != nil { + return err + } + v.initialized = true + } + + m := r.mainRuntime + p.Logf(LogLevelDebug, "Initializing runtime for main module") + err := m.init(ctx) + if err != nil { + return err + } + m.initialized = true + + return nil + } + + return r +} + +// detectModuleRuntime detects the specific runtime of a given module +// it returns a module runtime with an initialization function specific to that module +func detectModuleRuntime(p *Plugin, m api.Module) moduleRuntime { + runtime, ok := haskellRuntime(p, m) if ok { return runtime } - runtime, ok = wasiRuntime(p, p.mainModule) + runtime, ok = wasiRuntime(p, m) if ok { return runtime } p.Log(LogLevelTrace, "No runtime detected") - return guestRuntime{runtimeType: None, init: func(_ context.Context) error { return nil }, initialized: true} + return moduleRuntime{runtimeType: None, init: func(_ context.Context) error { return nil }, initialized: true} } // Check for Haskell runtime initialization functions // Initialize Haskell runtime if `hs_init` and `hs_exit` are present, // by calling the `hs_init` export -func haskellRuntime(p *Plugin, m api.Module) (guestRuntime, bool) { +func haskellRuntime(p *Plugin, m api.Module) (moduleRuntime, bool) { initFunc := m.ExportedFunction("hs_init") if initFunc == nil { - return guestRuntime{}, false + return moduleRuntime{}, false } params := initFunc.Definition().ParamTypes() @@ -70,13 +115,13 @@ func haskellRuntime(p *Plugin, m api.Module) (guestRuntime, bool) { } p.Log(LogLevelTrace, "Haskell runtime detected") - return guestRuntime{runtimeType: Haskell, init: init}, true + return moduleRuntime{runtimeType: Haskell, init: init}, true } // Check for initialization functions defined by the WASI standard -func wasiRuntime(p *Plugin, m api.Module) (guestRuntime, bool) { +func wasiRuntime(p *Plugin, m api.Module) (moduleRuntime, bool) { if !p.hasWasi { - return guestRuntime{}, false + return moduleRuntime{}, false } // WASI supports two modules: Reactors and Commands @@ -90,30 +135,30 @@ func wasiRuntime(p *Plugin, m api.Module) (guestRuntime, bool) { } // Check for `_initialize` this is used by WASI to initialize certain interfaces. -func reactorModule(m api.Module, p *Plugin) (guestRuntime, bool) { +func reactorModule(m api.Module, p *Plugin) (moduleRuntime, bool) { init := findFunc(m, p, "_initialize") if init == nil { - return guestRuntime{}, false + return moduleRuntime{}, false } p.Logf(LogLevelTrace, "WASI runtime detected") p.Logf(LogLevelTrace, "Reactor module detected") - return guestRuntime{runtimeType: Wasi, init: init}, true + return moduleRuntime{runtimeType: Wasi, init: init}, true } // Check for `__wasm__call_ctors`, this is used by WASI to // initialize certain interfaces. -func commandModule(m api.Module, p *Plugin) (guestRuntime, bool) { +func commandModule(m api.Module, p *Plugin) (moduleRuntime, bool) { init := findFunc(m, p, "__wasm_call_ctors") if init == nil { - return guestRuntime{}, false + return moduleRuntime{}, false } p.Logf(LogLevelTrace, "WASI runtime detected") p.Logf(LogLevelTrace, "Command module detected") - return guestRuntime{runtimeType: Wasi, init: init}, true + return moduleRuntime{runtimeType: Wasi, init: init}, true } func findFunc(m api.Module, p *Plugin, name string) func(context.Context) error {