From d6b246aebe36d81dfca38e6da7fb3bff8d22e36d Mon Sep 17 00:00:00 2001 From: Tedi Mitiku Date: Mon, 12 Aug 2024 11:27:45 -0400 Subject: [PATCH 1/4] feat: make kurtosis service logs faster (#2525) ## Description Users were experiencing `kurtosis service logs` taking a long time. After running tests, I discovered that a majority of execution time during log processing was spent in the following lines: ``` logLines := []logline.LogLine{*logLine} userServicesLogLinesMap := map[service.ServiceUUID][]logline.LogLine{ serviceUuid: logLines, } logsByKurtosisUserServiceUuidChan <- userServicesLogLinesMap ``` Prior to this change, we were sending logs one at a time on an unbuffered channel - unbuffered channels block until the receiving goroutine reads the value. This was causing a lot of time being wasted waiting to send log lines across the channel. This change implements a `LogLineSender` that: 1. uses a buffered go channel (won't block on sending line unless buffer is full) 2. batches log lines (reduces read overhead, receiving goroutine performs fewer reads/sends) With this change, the time to read 20 minutes of `cl-lighthouse-geth` logs with log level set to debug went from `1min53sec` to `30.055` seconds. The time to read 2 hours 10 minutes worth of `cl-lighthouse` debug logs (around 3.4 gb of logs) went from `15min1sec` to `3min31` sec. (As a benchmark, `cat logs.json` on `3.4 gb` of logs takes around `2min` - on my machine - so much closer) This can likely be improved further by tuning the buffer size and batch amount. ## Is this change user facing? YES ## References: https://discord.com/channels/783719264308953108/1267837033032974467/1267842228072611881 --- .circleci/config.yml | 13 +--- README.md | 2 +- .../persistent_volume_logs_database_client.go | 24 +++++-- .../per_file_stream_logs_strategy.go | 9 +-- .../per_week_stream_logs_strategy.go | 40 +++++------- .../stream_logs_strategy.go | 2 +- .../logline/logline_sender.go | 65 +++++++++++++++++++ engine/server/go.mod | 2 +- engine/server/go.sum | 4 +- 9 files changed, 109 insertions(+), 52 deletions(-) create mode 100644 engine/server/engine/centralized_logs/logline/logline_sender.go diff --git a/.circleci/config.yml b/.circleci/config.yml index 554dfabbbc..792840db5b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -145,7 +145,7 @@ version: 2.1 orbs: npm-publisher: uraway/npm-publisher@0.2.0 - kurtosis-docs-checker: kurtosis-tech/docs-checker@0.2.7 + kurtosis-docs-checker: kurtosis-tech/docs-checker@0.2.9 slack: circleci/slack@4.10.1 executors: @@ -1475,17 +1475,6 @@ workflows: name: "Check if CLI builds for all os and arch pairs" <<: *filters_ignore_main - - test_enclave_manager_web_ui: - name: "Test Basic Web UI Functionality in Docker" - context: - - docker-user - requires: - - build_cli - - build_api_container_server - - build_engine_server - - build_files_artifacts_expander - <<: *filters_ignore_main - - test_basic_cli_functionality: name: "Test Basic CLI Functionality in Docker" cli-cluster-backend: "docker" diff --git a/README.md b/README.md index a2a01ce152..26857129dc 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ Because of this additional layer of abstraction, we are able to introduce severa How do I get going? =================== -To see Kurtosis in action, first install it using the instructions [here](https://docs.kurtosis.com/install) or visit [Kurtosis Cloud](https://cloud.kurtosis.com/) to provision a remote host. +To see Kurtosis in action, first install it using the instructions [here](https://docs.kurtosis.com/install). Then, run the [Redis voting app Kurtosis package](https://github.com/kurtosis-tech/awesome-kurtosis/tree/main/redis-voting-app): diff --git a/engine/server/engine/centralized_logs/client_implementations/persistent_volume/persistent_volume_logs_database_client.go b/engine/server/engine/centralized_logs/client_implementations/persistent_volume/persistent_volume_logs_database_client.go index 46c00f00d2..6880e8db3e 100644 --- a/engine/server/engine/centralized_logs/client_implementations/persistent_volume/persistent_volume_logs_database_client.go +++ b/engine/server/engine/centralized_logs/client_implementations/persistent_volume/persistent_volume_logs_database_client.go @@ -63,7 +63,8 @@ func (client *persistentVolumeLogsDatabaseClient) StreamUserServiceLogs( streamErrChan := make(chan error) // this channel will return the user service log lines by service UUID - logsByKurtosisUserServiceUuidChan := make(chan map[service.ServiceUUID][]logline.LogLine) + logLineSender := logline.NewLogLineSender() + logsByKurtosisUserServiceUuidChan := logLineSender.GetLogsChannel() wgSenders := &sync.WaitGroup{} for serviceUuid := range userServiceUuids { @@ -71,7 +72,7 @@ func (client *persistentVolumeLogsDatabaseClient) StreamUserServiceLogs( go client.streamServiceLogLines( ctx, wgSenders, - logsByKurtosisUserServiceUuidChan, + logLineSender, streamErrChan, enclaveUuid, serviceUuid, @@ -87,7 +88,11 @@ func (client *persistentVolumeLogsDatabaseClient) StreamUserServiceLogs( //wait for stream go routine to end wgSenders.Wait() - close(logsByKurtosisUserServiceUuidChan) + // send all buffered log lines + logLineSender.Flush() + + // wait until the channel has been fully read/empty before closing it + closeChannelWhenEmpty(logsByKurtosisUserServiceUuidChan) close(streamErrChan) //then cancel the context @@ -130,7 +135,7 @@ func (client *persistentVolumeLogsDatabaseClient) FilterExistingServiceUuids( func (client *persistentVolumeLogsDatabaseClient) streamServiceLogLines( ctx context.Context, wgSenders *sync.WaitGroup, - logsByKurtosisUserServiceUuidChan chan map[service.ServiceUUID][]logline.LogLine, + logLineSender *logline.LogLineSender, streamErrChan chan error, enclaveUuid enclave.EnclaveUUID, serviceUuid service.ServiceUUID, @@ -143,7 +148,7 @@ func (client *persistentVolumeLogsDatabaseClient) streamServiceLogLines( client.streamStrategy.StreamLogs( ctx, client.filesystem, - logsByKurtosisUserServiceUuidChan, + logLineSender, streamErrChan, enclaveUuid, serviceUuid, @@ -152,3 +157,12 @@ func (client *persistentVolumeLogsDatabaseClient) streamServiceLogLines( shouldReturnAllLogs, numLogLines) } + +func closeChannelWhenEmpty(logsChan chan map[service.ServiceUUID][]logline.LogLine) { + for { + if len(logsChan) == 0 { + close(logsChan) + return + } + } +} diff --git a/engine/server/engine/centralized_logs/client_implementations/persistent_volume/stream_logs_strategy/per_file_stream_logs_strategy.go b/engine/server/engine/centralized_logs/client_implementations/persistent_volume/stream_logs_strategy/per_file_stream_logs_strategy.go index 7fa08c1594..b322e8c214 100644 --- a/engine/server/engine/centralized_logs/client_implementations/persistent_volume/stream_logs_strategy/per_file_stream_logs_strategy.go +++ b/engine/server/engine/centralized_logs/client_implementations/persistent_volume/stream_logs_strategy/per_file_stream_logs_strategy.go @@ -30,7 +30,7 @@ type JsonLog map[string]string func (strategy *PerFileStreamLogsStrategy) StreamLogs( ctx context.Context, fs volume_filesystem.VolumeFilesystem, - logsByKurtosisUserServiceUuidChan chan map[service.ServiceUUID][]logline.LogLine, + logLineSender *logline.LogLineSender, streamErrChan chan error, enclaveUuid enclave.EnclaveUUID, serviceUuid service.ServiceUUID, @@ -122,12 +122,7 @@ func (strategy *PerFileStreamLogsStrategy) StreamLogs( break } - // send the log line - logLines := []logline.LogLine{*logLine} - userServicesLogLinesMap := map[service.ServiceUUID][]logline.LogLine{ - serviceUuid: logLines, - } - logsByKurtosisUserServiceUuidChan <- userServicesLogLinesMap + logLineSender.Send(serviceUuid, *logLine) } } } diff --git a/engine/server/engine/centralized_logs/client_implementations/persistent_volume/stream_logs_strategy/per_week_stream_logs_strategy.go b/engine/server/engine/centralized_logs/client_implementations/persistent_volume/stream_logs_strategy/per_week_stream_logs_strategy.go index 755df67123..1717721392 100644 --- a/engine/server/engine/centralized_logs/client_implementations/persistent_volume/stream_logs_strategy/per_week_stream_logs_strategy.go +++ b/engine/server/engine/centralized_logs/client_implementations/persistent_volume/stream_logs_strategy/per_week_stream_logs_strategy.go @@ -48,7 +48,7 @@ func NewPerWeekStreamLogsStrategy(time logs_clock.LogsClock, logRetentionPeriodI func (strategy *PerWeekStreamLogsStrategy) StreamLogs( ctx context.Context, fs volume_filesystem.VolumeFilesystem, - logsByKurtosisUserServiceUuidChan chan map[service.ServiceUUID][]logline.LogLine, + logLineSender *logline.LogLineSender, streamErrChan chan error, enclaveUuid enclave.EnclaveUUID, serviceUuid service.ServiceUUID, @@ -89,24 +89,26 @@ func (strategy *PerWeekStreamLogsStrategy) StreamLogs( }() if shouldReturnAllLogs { - if err := strategy.streamAllLogs(ctx, logsReader, logsByKurtosisUserServiceUuidChan, serviceUuid, conjunctiveLogLinesFiltersWithRegex); err != nil { + if err := strategy.streamAllLogs(ctx, logsReader, logLineSender, serviceUuid, conjunctiveLogLinesFiltersWithRegex); err != nil { streamErrChan <- stacktrace.Propagate(err, "An error occurred streaming all logs for service '%v' in enclave '%v'", serviceUuid, enclaveUuid) return } } else { - if err := strategy.streamTailLogs(ctx, logsReader, numLogLines, logsByKurtosisUserServiceUuidChan, serviceUuid, conjunctiveLogLinesFiltersWithRegex); err != nil { + if err := strategy.streamTailLogs(ctx, logsReader, numLogLines, logLineSender, serviceUuid, conjunctiveLogLinesFiltersWithRegex); err != nil { streamErrChan <- stacktrace.Propagate(err, "An error occurred streaming '%v' logs for service '%v' in enclave '%v'", numLogLines, serviceUuid, enclaveUuid) return } } + // need to flush before following logs + logLineSender.Flush() if shouldFollowLogs { latestLogFile := paths[len(paths)-1] - if err := strategy.followLogs(ctx, latestLogFile, logsByKurtosisUserServiceUuidChan, serviceUuid, conjunctiveLogLinesFiltersWithRegex); err != nil { + logrus.Debugf("Following logs...") + if err := strategy.followLogs(ctx, latestLogFile, logLineSender, serviceUuid, conjunctiveLogLinesFiltersWithRegex); err != nil { streamErrChan <- stacktrace.Propagate(err, "An error occurred creating following logs for service '%v' in enclave '%v'", serviceUuid, enclaveUuid) return } - logrus.Debugf("Following logs...") } } @@ -180,7 +182,7 @@ func getLogsReader(filesystem volume_filesystem.VolumeFilesystem, logFilePaths [ func (strategy *PerWeekStreamLogsStrategy) streamAllLogs( ctx context.Context, logsReader *bufio.Reader, - logsByKurtosisUserServiceUuidChan chan map[service.ServiceUUID][]logline.LogLine, + logLineSender *logline.LogLineSender, serviceUuid service.ServiceUUID, conjunctiveLogLinesFiltersWithRegex []logline.LogLineFilterWithRegex) error { for { @@ -190,12 +192,14 @@ func (strategy *PerWeekStreamLogsStrategy) streamAllLogs( return nil default: jsonLogStr, err := getCompleteJsonLogString(logsReader) + if isValidJsonEnding(jsonLogStr) { jsonLog, err := convertStringToJson(jsonLogStr) if err != nil { return stacktrace.Propagate(err, "An error occurred converting the json log string '%v' into json.", jsonLogStr) } - if err = strategy.sendJsonLogLine(jsonLog, logsByKurtosisUserServiceUuidChan, serviceUuid, conjunctiveLogLinesFiltersWithRegex); err != nil { + + if err = strategy.sendJsonLogLine(jsonLog, conjunctiveLogLinesFiltersWithRegex, logLineSender, serviceUuid); err != nil { return err } } @@ -217,7 +221,7 @@ func (strategy *PerWeekStreamLogsStrategy) streamTailLogs( ctx context.Context, logsReader *bufio.Reader, numLogLines uint32, - logsByKurtosisUserServiceUuidChan chan map[service.ServiceUUID][]logline.LogLine, + logLineSender *logline.LogLineSender, serviceUuid service.ServiceUUID, conjunctiveLogLinesFiltersWithRegex []logline.LogLineFilterWithRegex) error { tailLogLines := make([]string, 0, numLogLines) @@ -255,7 +259,7 @@ func (strategy *PerWeekStreamLogsStrategy) streamTailLogs( if err != nil { return stacktrace.Propagate(err, "An error occurred converting the json log string '%v' into json.", jsonLogStr) } - if err := strategy.sendJsonLogLine(jsonLog, logsByKurtosisUserServiceUuidChan, serviceUuid, conjunctiveLogLinesFiltersWithRegex); err != nil { + if err = strategy.sendJsonLogLine(jsonLog, conjunctiveLogLinesFiltersWithRegex, logLineSender, serviceUuid); err != nil { return err } } @@ -298,11 +302,7 @@ func isValidJsonEnding(line string) bool { return endOfLine == volume_consts.EndOfJsonLine } -func (strategy *PerWeekStreamLogsStrategy) sendJsonLogLine( - jsonLog JsonLog, - logsByKurtosisUserServiceUuidChan chan map[service.ServiceUUID][]logline.LogLine, - serviceUuid service.ServiceUUID, - conjunctiveLogLinesFiltersWithRegex []logline.LogLineFilterWithRegex) error { +func (strategy *PerWeekStreamLogsStrategy) sendJsonLogLine(jsonLog JsonLog, conjunctiveLogLinesFiltersWithRegex []logline.LogLineFilterWithRegex, logLineSender *logline.LogLineSender, serviceUuid service.ServiceUUID) error { // each logLineStr is of the following structure: {"enclave_uuid": "...", "service_uuid":"...", "log": "...",.. "timestamp":"..."} // eg. {"container_type":"api-container", "container_id":"8f8558ba", "container_name":"/kurtosis-api--ffd", // "log":"hi","timestamp":"2023-08-14T14:57:49Z"} @@ -338,12 +338,7 @@ func (strategy *PerWeekStreamLogsStrategy) sendJsonLogLine( return nil } - // send the log line - logLines := []logline.LogLine{*logLine} - userServicesLogLinesMap := map[service.ServiceUUID][]logline.LogLine{ - serviceUuid: logLines, - } - logsByKurtosisUserServiceUuidChan <- userServicesLogLinesMap + logLineSender.Send(serviceUuid, *logLine) return nil } @@ -358,7 +353,7 @@ func (strategy *PerWeekStreamLogsStrategy) isWithinRetentionPeriod(logLine *logl func (strategy *PerWeekStreamLogsStrategy) followLogs( ctx context.Context, filepath string, - logsByKurtosisUserServiceUuidChan chan map[service.ServiceUUID][]logline.LogLine, + logLineSender *logline.LogLineSender, serviceUuid service.ServiceUUID, conjunctiveLogLinesFiltersWithRegex []logline.LogLineFilterWithRegex, ) error { @@ -399,8 +394,7 @@ func (strategy *PerWeekStreamLogsStrategy) followLogs( // if tail package fails to parse a valid new line, fail fast return stacktrace.NewError("hpcloud/tail returned the following line: '%v' that was not valid json.\nThis is potentially a bug in tailing package.", logLine.Text) } - err = strategy.sendJsonLogLine(jsonLog, logsByKurtosisUserServiceUuidChan, serviceUuid, conjunctiveLogLinesFiltersWithRegex) - if err != nil { + if err = strategy.sendJsonLogLine(jsonLog, conjunctiveLogLinesFiltersWithRegex, logLineSender, serviceUuid); err != nil { return stacktrace.Propagate(err, "An error occurred sending json log line '%v'.", logLine.Text) } } diff --git a/engine/server/engine/centralized_logs/client_implementations/persistent_volume/stream_logs_strategy/stream_logs_strategy.go b/engine/server/engine/centralized_logs/client_implementations/persistent_volume/stream_logs_strategy/stream_logs_strategy.go index c8fa215b30..af00ed5646 100644 --- a/engine/server/engine/centralized_logs/client_implementations/persistent_volume/stream_logs_strategy/stream_logs_strategy.go +++ b/engine/server/engine/centralized_logs/client_implementations/persistent_volume/stream_logs_strategy/stream_logs_strategy.go @@ -15,7 +15,7 @@ type StreamLogsStrategy interface { StreamLogs( ctx context.Context, fs volume_filesystem.VolumeFilesystem, - logsByKurtosisUserServiceUuidChan chan map[service.ServiceUUID][]logline.LogLine, + logLineSender *logline.LogLineSender, streamErrChan chan error, enclaveUuid enclave.EnclaveUUID, serviceUuid service.ServiceUUID, diff --git a/engine/server/engine/centralized_logs/logline/logline_sender.go b/engine/server/engine/centralized_logs/logline/logline_sender.go new file mode 100644 index 0000000000..0e76510dac --- /dev/null +++ b/engine/server/engine/centralized_logs/logline/logline_sender.go @@ -0,0 +1,65 @@ +package logline + +import ( + "github.com/kurtosis-tech/kurtosis/container-engine-lib/lib/backend_interface/objects/service" + "sync" +) + +const ( + batchLogsAmount = 500 + logsChanBufferSize = 300 +) + +type LogLineSender struct { + logsChan chan map[service.ServiceUUID][]LogLine + + logLineBuffer map[service.ServiceUUID][]LogLine + + mu sync.Mutex +} + +func NewLogLineSender() *LogLineSender { + return &LogLineSender{ + logsChan: make(chan map[service.ServiceUUID][]LogLine, logsChanBufferSize), + logLineBuffer: map[service.ServiceUUID][]LogLine{}, + mu: sync.Mutex{}, + } +} + +func (sender *LogLineSender) Send(serviceUuid service.ServiceUUID, logLine LogLine) { + sender.mu.Lock() + defer sender.mu.Unlock() + + sender.logLineBuffer[serviceUuid] = append(sender.logLineBuffer[serviceUuid], logLine) + + if len(sender.logLineBuffer[serviceUuid])%batchLogsAmount == 0 { + userServicesLogLinesMap := map[service.ServiceUUID][]LogLine{ + serviceUuid: sender.logLineBuffer[serviceUuid], + } + sender.logsChan <- userServicesLogLinesMap + + // clear buffer after flushing it through the channel + sender.logLineBuffer[serviceUuid] = []LogLine{} + } +} + +func (sender *LogLineSender) GetLogsChannel() chan map[service.ServiceUUID][]LogLine { + return sender.logsChan +} + +// sends all logs remaining in the buffers through the channel +// this should be called at the end of processing to send the remainder of logs +func (sender *LogLineSender) Flush() { + sender.mu.Lock() + defer sender.mu.Unlock() + + for uuid, logLines := range sender.logLineBuffer { + serviceUuid := uuid + userServiceLogLinesMap := map[service.ServiceUUID][]LogLine{ + serviceUuid: logLines, + } + sender.logsChan <- userServiceLogLinesMap + + sender.logLineBuffer[serviceUuid] = []LogLine{} + } +} diff --git a/engine/server/go.mod b/engine/server/go.mod index f6548f984e..4660cedcc6 100644 --- a/engine/server/go.mod +++ b/engine/server/go.mod @@ -63,7 +63,7 @@ require ( github.com/kurtosis-tech/kurtosis/grpc-file-transfer/golang v0.0.0-20230803130419-099ee7a4e3dc github.com/kurtosis-tech/kurtosis/metrics-library/golang v0.0.0-20231206095907-9bdf0d02cb90 github.com/labstack/echo/v4 v4.11.3 - github.com/rs/cors v1.9.0 + github.com/rs/cors v1.11.0 github.com/spf13/afero v1.10.0 golang.org/x/exp v0.0.0-20230905200255-921286631fa9 k8s.io/apimachinery v0.27.2 diff --git a/engine/server/go.sum b/engine/server/go.sum index b7fd1e32d1..c027f4c074 100644 --- a/engine/server/go.sum +++ b/engine/server/go.sum @@ -312,8 +312,8 @@ github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1: github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= -github.com/rs/cors v1.9.0 h1:l9HGsTsHJcvW14Nk7J9KFz8bzeAWXn3CG6bgt7LsrAE= -github.com/rs/cors v1.9.0/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= +github.com/rs/cors v1.11.0 h1:0B9GE/r9Bc2UxRMMtymBkHTenPkHDv0CW4Y98GBY+po= +github.com/rs/cors v1.11.0/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= github.com/segmentio/backo-go v1.0.0 h1:kbOAtGJY2DqOR0jfRkYEorx/b18RgtepGtY3+Cpe6qA= github.com/segmentio/backo-go v1.0.0/go.mod h1:kJ9mm9YmoWSkk+oQ+5Cj8DEoRCX2JT6As4kEtIIOp1M= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= From 8c768fddd28319785d655490212c91da93bf03a5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Aug 2024 15:51:18 +0000 Subject: [PATCH 2/4] build(deps): Bump github.com/rs/cors from 1.9.0 to 1.11.0 in /connect-server (#2527) Bumps [github.com/rs/cors](https://github.com/rs/cors) from 1.9.0 to 1.11.0.
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/rs/cors&package-manager=go_modules&previous-version=1.9.0&new-version=1.11.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/kurtosis-tech/kurtosis/network/alerts).
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- connect-server/go.mod | 2 +- connect-server/go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/connect-server/go.mod b/connect-server/go.mod index 7e2da85240..b73bc6f0bc 100644 --- a/connect-server/go.mod +++ b/connect-server/go.mod @@ -4,7 +4,7 @@ go 1.20 require ( github.com/kurtosis-tech/stacktrace v0.0.0-20211028211901-1c67a77b5409 - github.com/rs/cors v1.9.0 + github.com/rs/cors v1.11.0 github.com/sirupsen/logrus v1.9.3 golang.org/x/net v0.19.0 ) diff --git a/connect-server/go.sum b/connect-server/go.sum index 40dc257222..00db1ad36b 100644 --- a/connect-server/go.sum +++ b/connect-server/go.sum @@ -5,8 +5,8 @@ github.com/kurtosis-tech/stacktrace v0.0.0-20211028211901-1c67a77b5409 h1:YQTATi github.com/kurtosis-tech/stacktrace v0.0.0-20211028211901-1c67a77b5409/go.mod h1:y5weVs5d9wXXHcDA1awRxkIhhHC1xxYJN8a7aXnE6S8= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/rs/cors v1.9.0 h1:l9HGsTsHJcvW14Nk7J9KFz8bzeAWXn3CG6bgt7LsrAE= -github.com/rs/cors v1.9.0/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= +github.com/rs/cors v1.11.0 h1:0B9GE/r9Bc2UxRMMtymBkHTenPkHDv0CW4Y98GBY+po= +github.com/rs/cors v1.11.0/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= From a040b7aaaccddb5b126bd060a7694ae1230fe801 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Aug 2024 17:16:36 +0100 Subject: [PATCH 3/4] build(deps): Bump braces from 3.0.2 to 3.0.3 in /enclave-manager/web (#2530) Bumps [braces](https://github.com/micromatch/braces) from 3.0.2 to 3.0.3.
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=braces&package-manager=npm_and_yarn&previous-version=3.0.2&new-version=3.0.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/kurtosis-tech/kurtosis/network/alerts).
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- enclave-manager/web/yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/enclave-manager/web/yarn.lock b/enclave-manager/web/yarn.lock index faa3722883..75e66e8921 100644 --- a/enclave-manager/web/yarn.lock +++ b/enclave-manager/web/yarn.lock @@ -5727,11 +5727,11 @@ brace-expansion@^2.0.1: balanced-match "^1.0.0" braces@^3.0.2, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + version "3.0.3" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== dependencies: - fill-range "^7.0.1" + fill-range "^7.1.1" browser-process-hrtime@^1.0.0: version "1.0.0" @@ -8099,10 +8099,10 @@ filesize@^8.0.6: resolved "https://registry.yarnpkg.com/filesize/-/filesize-8.0.7.tgz#695e70d80f4e47012c132d57a059e80c6b580bd8" integrity sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ== -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== dependencies: to-regex-range "^5.0.1" From 926de232a0957c014fbbadfe8d85aedcc72c1f7f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Aug 2024 16:42:31 +0000 Subject: [PATCH 4/4] build(deps): Bump braces from 3.0.2 to 3.0.3 in /enclave-manager/api/typescript (#2531) Bumps [braces](https://github.com/micromatch/braces) from 3.0.2 to 3.0.3.
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=braces&package-manager=npm_and_yarn&previous-version=3.0.2&new-version=3.0.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/kurtosis-tech/kurtosis/network/alerts).
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- enclave-manager/api/typescript/yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/enclave-manager/api/typescript/yarn.lock b/enclave-manager/api/typescript/yarn.lock index 997c8c2032..5a42c464ab 100644 --- a/enclave-manager/api/typescript/yarn.lock +++ b/enclave-manager/api/typescript/yarn.lock @@ -1512,11 +1512,11 @@ brace-expansion@^1.1.7: concat-map "0.0.1" braces@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + version "3.0.3" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== dependencies: - fill-range "^7.0.1" + fill-range "^7.1.1" browserslist@^4.22.2: version "4.22.2" @@ -1791,10 +1791,10 @@ fb-watchman@^2.0.0: dependencies: bser "2.1.1" -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== dependencies: to-regex-range "^5.0.1"