Skip to content

Commit cdbe267

Browse files
authored
Merge pull request #6158 from mysteriumnetwork/ci-go-version
CI fix, additional QUIC cleanup
2 parents 1aeb563 + f9bb795 commit cdbe267

File tree

6 files changed

+54
-23
lines changed

6 files changed

+54
-23
lines changed

.github/workflows/build-packages.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@ jobs:
2828
fetch-depth: 0
2929
fetch-tags: true
3030
- name: Setup Go
31-
uses: actions/setup-go@v5
31+
uses: actions/setup-go@v6
3232
with:
33-
go-version: '1.21.x'
33+
go-version-file: 'go.mod'
3434

3535
- name: Prepare environment
3636
run: |
@@ -104,9 +104,9 @@ jobs:
104104
steps:
105105
- uses: actions/checkout@v4
106106
- name: Setup Go
107-
uses: actions/setup-go@v5
107+
uses: actions/setup-go@v6
108108
with:
109-
go-version: '1.21.x'
109+
go-version-file: 'go.mod'
110110
- uses: actions/download-artifact@v4
111111
with:
112112
name: env.sh
@@ -130,9 +130,9 @@ jobs:
130130
steps:
131131
- uses: actions/checkout@v4
132132
- name: Setup Go
133-
uses: actions/setup-go@v5
133+
uses: actions/setup-go@v6
134134
with:
135-
go-version: '1.21.x'
135+
go-version-file: 'go.mod'
136136
- uses: actions/download-artifact@v4
137137
with:
138138
name: env.sh
@@ -167,9 +167,9 @@ jobs:
167167
steps:
168168
- uses: actions/checkout@v4
169169
- name: Setup Go
170-
uses: actions/setup-go@v5
170+
uses: actions/setup-go@v6
171171
with:
172-
go-version: '1.21.x'
172+
go-version-file: 'go.mod'
173173
- uses: actions/download-artifact@v4
174174
with:
175175
name: env.sh

.github/workflows/release.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@ jobs:
2424
steps:
2525
- uses: actions/checkout@v4
2626
- name: Setup Go
27-
uses: actions/setup-go@v5
27+
uses: actions/setup-go@v6
2828
with:
29-
go-version: '1.21.x'
29+
go-version-file: 'go.mod'
3030
- uses: actions/download-artifact@v4
3131
with:
3232
name: env.sh
@@ -57,9 +57,9 @@ jobs:
5757
steps:
5858
- uses: actions/checkout@v4
5959
- name: Setup Go
60-
uses: actions/setup-go@v5
60+
uses: actions/setup-go@v6
6161
with:
62-
go-version: '1.21.x'
62+
go-version-file: 'go.mod'
6363
- uses: actions/download-artifact@v4
6464
with:
6565
name: env.sh
@@ -106,9 +106,9 @@ jobs:
106106
steps:
107107
- uses: actions/checkout@v4
108108
- name: Setup Go
109-
uses: actions/setup-go@v5
109+
uses: actions/setup-go@v6
110110
with:
111-
go-version: '1.21.x'
111+
go-version-file: 'go.mod'
112112
- uses: actions/download-artifact@v4
113113
with:
114114
name: env.sh
@@ -142,9 +142,9 @@ jobs:
142142
steps:
143143
- uses: actions/checkout@v4
144144
- name: Setup Go
145-
uses: actions/setup-go@v5
145+
uses: actions/setup-go@v6
146146
with:
147-
go-version: '1.21.x'
147+
go-version-file: 'go.mod'
148148
- uses: actions/download-artifact@v4
149149
with:
150150
name: env.sh

.github/workflows/tests-and-linters.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ jobs:
1212
steps:
1313
- uses: actions/checkout@v4
1414
- name: Setup Go
15-
uses: actions/setup-go@v5
15+
uses: actions/setup-go@v6
1616
with:
17-
go-version: '1.21.x'
17+
go-version-file: 'go.mod'
1818

1919
- name: Install protoc
2020
run: |
@@ -39,9 +39,9 @@ jobs:
3939
steps:
4040
- uses: actions/checkout@v4
4141
- name: Setup Go
42-
uses: actions/setup-go@v5
42+
uses: actions/setup-go@v6
4343
with:
44-
go-version: '1.21.x'
44+
go-version-file: 'go.mod'
4545

4646
- name: Login to Docker Hub
4747
uses: docker/login-action@v3
@@ -61,9 +61,9 @@ jobs:
6161
steps:
6262
- uses: actions/checkout@v4
6363
- name: Setup Go
64-
uses: actions/setup-go@v5
64+
uses: actions/setup-go@v6
6565
with:
66-
go-version: '1.21.x'
66+
go-version-file: 'go.mod'
6767

6868
- name: Login to Docker Hub
6969
uses: docker/login-action@v3

ci/packages/package.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -406,6 +406,10 @@ func packageDebian(binaryPath, arch string) error {
406406
"BINARY": binaryPath,
407407
}
408408

409+
if gopath, _ := sh.Output("go", "env", "GOPATH"); gopath != "" {
410+
envs["PATH"] = fmt.Sprintf("%s:%s/bin", os.Getenv("PATH"), gopath)
411+
}
412+
409413
if err := deb.TermsTemplateFile("bin/package/installation/templates"); err != nil {
410414
return err
411415
}

ci/packages/raspberry.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,9 @@ func configureRaspbianImage(raspbianImagePath string) error {
102102
if err := shell.NewCmd("sudo apt-get install -y qemu-system qemu-user-static binfmt-support systemd-container").RunWith(envs); err != nil {
103103
return err
104104
}
105+
if err := shell.NewCmd("sudo systemctl restart systemd-binfmt").Run(); err != nil {
106+
return err
107+
}
105108
loopDevice, err := device.AttachLoop(raspbianImagePath)
106109
if err != nil {
107110
return err

services/quic/connection/server/server.go

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,25 +159,49 @@ func (s *QuicServer) listenAndServeQUIC(ctx context.Context, tlsc *tls.Config) (
159159
return fmt.Errorf("failed to listen for quic connection %w", err)
160160
}
161161

162+
// Ensure listener is closed when context is cancelled
163+
defer func() {
164+
s.mu.Lock()
165+
defer s.mu.Unlock()
166+
if s.listener != nil {
167+
s.listener.Close()
168+
s.listener = nil
169+
}
170+
}()
171+
162172
for {
163173
select {
164174
case <-ctx.Done():
165175
return ctx.Err()
166176
default:
167177
c, err := s.listener.Accept(ctx)
168178
if err != nil {
179+
s.mu.RLock()
180+
listenerClosed := s.listener == nil
181+
s.mu.RUnlock()
182+
if listenerClosed {
183+
log.Debug().Msg("QUIC listener closed, exiting accept loop")
184+
return nil
185+
}
169186
log.Error().Err(err).Msg("failed to accept QUIC connection")
170-
171187
continue
172188
}
173189

174190
s.mu.Lock()
175191
switch c.ConnectionState().TLS.NegotiatedProtocol {
176192
case "myst-communication":
177193
log.Info().Msg("Setting communication connection")
194+
if s.communicationConn != nil {
195+
log.Warn().Msg("Closing old communication connection before replacing")
196+
s.communicationConn.CloseWithError(0, "replaced by new connection")
197+
}
178198
s.communicationConn = c
179199
case "myst-transport":
180200
log.Info().Msg("Setting transport connection")
201+
if s.transportConn != nil {
202+
log.Warn().Msg("Closing old transport connection before replacing")
203+
s.transportConn.CloseWithError(0, "replaced by new connection")
204+
}
181205
s.transportConn = c
182206
}
183207
s.mu.Unlock()

0 commit comments

Comments
 (0)