• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

lightningnetwork / lnd / 13440912774

20 Feb 2025 05:14PM UTC coverage: 57.697% (-1.1%) from 58.802%
13440912774

Pull #9535

github

guggero
GitHub: remove duplicate caching

Turns out that actions/setup-go starting with @v4 also adds caching.
With that, our cache size on disk has almost doubled, leading to the
GitHub runner running out of space in certain situation.
We fix that by disabling the automated caching since we already have our
own, custom-tailored version.
Pull Request #9535: GitHub: remove duplicate caching

103519 of 179417 relevant lines covered (57.7%)

24825.3 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

67.39
/watchtower/wtclient/stats.go
1
package wtclient
2

3
import (
4
        "fmt"
5
        "sync"
6
)
7

8
// ClientStats is a collection of in-memory statistics of the actions the client
9
// has performed since its creation.
10
type ClientStats struct {
11
        // NumTasksPending is the total number of backups that are pending to
12
        // be acknowledged by all active and exhausted watchtower sessions.
13
        NumTasksPending int
14

15
        // NumTasksAccepted is the total number of backups made to all active
16
        // and exhausted watchtower sessions.
17
        NumTasksAccepted int
18

19
        // NumTasksIneligible is the total number of backups that all active and
20
        // exhausted watchtower sessions have failed to acknowledge.
21
        NumTasksIneligible int
22

23
        // NumSessionsAcquired is the total number of new sessions made to
24
        // watchtowers.
25
        NumSessionsAcquired int
26

27
        // NumSessionsExhausted is the total number of watchtower sessions that
28
        // have been exhausted.
29
        NumSessionsExhausted int
30
}
31

32
// clientStats wraps ClientStats with a mutex so that it's members can be
33
// accessed in a thread safe manner.
34
type clientStats struct {
35
        mu sync.Mutex
36

37
        ClientStats
38
}
39

40
// taskReceived increments the number of backup requests the client has received
41
// from active channels.
42
func (s *clientStats) taskReceived() {
480✔
43
        s.mu.Lock()
480✔
44
        defer s.mu.Unlock()
480✔
45

480✔
46
        s.NumTasksPending++
480✔
47
}
480✔
48

49
// taskAccepted increments the number of tasks that have been assigned to active
50
// session queues, and are awaiting upload to a tower.
51
func (s *clientStats) taskAccepted() {
475✔
52
        s.mu.Lock()
475✔
53
        defer s.mu.Unlock()
475✔
54

475✔
55
        s.NumTasksAccepted++
475✔
56
        s.NumTasksPending--
475✔
57
}
475✔
58

59
// getStatsCopy returns a copy of the ClientStats.
60
func (s *clientStats) getStatsCopy() ClientStats {
×
61
        s.mu.Lock()
×
62
        defer s.mu.Unlock()
×
63

×
64
        return s.ClientStats
×
65
}
×
66

67
// taskIneligible increments the number of tasks that were unable to satisfy the
68
// active session queue's policy. These can potentially be retried later, but
69
// typically this means that the balance created dust outputs, so it may not be
70
// worth backing up at all.
71
func (s *clientStats) taskIneligible() {
5✔
72
        s.mu.Lock()
5✔
73
        defer s.mu.Unlock()
5✔
74

5✔
75
        s.NumTasksIneligible++
5✔
76
}
5✔
77

78
// sessionAcquired increments the number of sessions that have been successfully
79
// negotiated by the client during this execution.
80
func (s *clientStats) sessionAcquired() {
73✔
81
        s.mu.Lock()
73✔
82
        defer s.mu.Unlock()
73✔
83

73✔
84
        s.NumSessionsAcquired++
73✔
85
}
73✔
86

87
// sessionExhausted increments the number of session that have become full as a
88
// result of accepting backup tasks.
89
func (s *clientStats) sessionExhausted() {
44✔
90
        s.mu.Lock()
44✔
91
        defer s.mu.Unlock()
44✔
92

44✔
93
        s.NumSessionsExhausted++
44✔
94
}
44✔
95

96
// String returns a human-readable summary of the client's metrics.
97
func (s *clientStats) String() string {
×
98
        s.mu.Lock()
×
99
        defer s.mu.Unlock()
×
100

×
101
        return fmt.Sprintf("tasks(received=%d accepted=%d ineligible=%d) "+
×
102
                "sessions(acquired=%d exhausted=%d)", s.NumTasksPending,
×
103
                s.NumTasksAccepted, s.NumTasksIneligible, s.NumSessionsAcquired,
×
104
                s.NumSessionsExhausted)
×
105
}
×
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc