7 Commits

Author SHA1 Message Date
xuu
cd1f1d7b5f fix: remove non-errors
All checks were successful
Go Bump / bump (push) Successful in 47s
Go Test / test (push) Successful in 59s
Deploy / deploy (push) Successful in 1m42s
2023-10-07 18:33:00 -06:00
xuu
a3ee0b7900 fix: return on errors
All checks were successful
Go Bump / bump (push) Successful in 46s
Go Test / test (push) Successful in 52s
Deploy / deploy (push) Successful in 1m42s
2023-10-07 18:11:35 -06:00
xuu
114c7101d6 fix: add debug levels
All checks were successful
Go Bump / bump (push) Successful in 43s
Go Test / test (push) Successful in 49s
Deploy / deploy (push) Successful in 1m42s
2023-10-07 17:57:09 -06:00
xuu
41476d04a2 fix: null pointer when unable to startu peerfinder
All checks were successful
Go Bump / bump (push) Successful in 30s
Go Test / test (push) Successful in 43s
Deploy / deploy (push) Successful in 1m25s
2023-10-02 11:26:14 -06:00
xuu
a5780449fc fix: error
All checks were successful
Go Bump / bump (push) Successful in 46s
Go Test / test (push) Successful in 1m1s
Deploy / deploy (push) Successful in 2m8s
2023-10-01 17:18:28 -06:00
xuu
4784c1c380 fix: error
All checks were successful
Go Bump / bump (push) Successful in 34s
Go Test / test (push) Successful in 46s
Deploy / deploy (push) Successful in 1m44s
2023-10-01 17:06:24 -06:00
xuu
6bb1d524b9 fix: error
All checks were successful
Go Bump / bump (push) Successful in 43s
Go Test / test (push) Successful in 56s
2023-10-01 16:56:28 -06:00
6 changed files with 31 additions and 16 deletions

View File

@@ -5,7 +5,7 @@ After=syslog.target network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/ev
User=www-data
Restart=always
RestartSec=30

View File

@@ -10,12 +10,12 @@
owner: root
group: root
- name: Copy build to remote
ansible.builtin.copy:
src: ev.service
dest: /etc/systemd/system/ev.service
owner: root
group: root
# - name: Copy build to remote
# ansible.builtin.copy:
# src: ev.service
# dest: /etc/systemd/system/ev.service
# owner: root
# group: root
- name: Restart service
systemd:

View File

@@ -1,6 +1,8 @@
name: Deploy
on:
push:
branches: [ "main" ]
release:
types: [ published ]

View File

@@ -179,7 +179,7 @@ func (s *service) getPending(w http.ResponseWriter, r *http.Request, peerID stri
return nil
})
if err != nil {
span.RecordError(err)
span.AddEvent(err.Error())
w.WriteHeader(http.StatusNotFound)
return
}
@@ -204,8 +204,9 @@ func (s *service) getPending(w http.ResponseWriter, r *http.Request, peerID stri
peerResults.SetStreamID(aggPeer(peerID))
err = s.es.Load(ctx, peerResults)
if err != nil && !errors.Is(err, ev.ErrNotFound) {
span.RecordError(fmt.Errorf("peer not found: %w", err))
span.AddEvent("peer not found")
w.WriteHeader(http.StatusNotFound)
return
}
var req *Request
@@ -221,8 +222,9 @@ func (s *service) getPending(w http.ResponseWriter, r *http.Request, peerID stri
}
}
if req == nil {
span.RecordError(fmt.Errorf("request not found"))
span.AddEvent("request not found")
w.WriteHeader(http.StatusNoContent)
return
}
negotiator := contentnegotiation.NewNegotiator("application/json", "text/environment", "text/plain", "text/html")
@@ -304,7 +306,7 @@ func (s *service) getResults(w http.ResponseWriter, r *http.Request) {
sort.Sort(sort.Reverse(requests))
args := requestArgs(r)
args.Requests = requests[:maxResults]
args.Requests = requests[:min(maxResults, len(requests))]
s.state.Use(ctx, func(ctx context.Context, state *state) error {
args.CountPeers = len(state.peers)
@@ -451,6 +453,7 @@ func (s *service) postResult(w http.ResponseWriter, r *http.Request, reqID strin
if err != nil {
span.RecordError(fmt.Errorf("peer not found: %w", err))
w.WriteHeader(http.StatusNotFound)
return
}
if peerResults.Has(reqID) {

View File

@@ -91,17 +91,17 @@ func (s *service) Run(ctx context.Context) (err error) {
subRes, e := s.es.EventStream().Subscribe(ctx, queueResults, 0)
errs = multierr.Append(errs, e)
if errs != nil {
return errs
}
defer func() {
ctx, cancel := context.WithTimeout(context.Background(), 1*time.Second)
defer cancel()
err = multierr.Combine(subReq.Close(ctx), subRes.Close(ctx), err)
err = multierr.Combine(err, subReq.Close(ctx), subRes.Close(ctx))
}()
if errs != nil {
return errs
}
for {
var events event.Events
select {

View File

@@ -4,10 +4,13 @@ import (
"context"
"errors"
"log"
"log/slog"
"net/http"
"os"
"os/signal"
"strconv"
"go.sour.is/pkg/env"
"go.sour.is/pkg/lg"
"go.sour.is/pkg/service"
)
@@ -27,6 +30,13 @@ func main() {
}
}
func run(ctx context.Context) error {
// TODO: make this configurable.
level := slog.LevelError
if ok, _ := strconv.ParseBool(env.Default("LOG_DEBUG", "FALSE")); ok {
level = slog.LevelDebug
}
slog.SetDefault(slog.New(slog.NewTextHandler(os.Stdout, &slog.HandlerOptions{Level: level})))
svc := &service.Harness{}
ctx, stop := lg.Init(ctx, appName)
svc.OnStop(stop)