@@ -70,30 +70,41 @@ func (d *MongoDatabase) SetupLocker() error {
7070 defer cancel ()
7171
7272 locker = lock .NewClient (d .db .Collection ("locks" ))
73- locker .CreateIndexes (ctx )
73+ err := locker .CreateIndexes (ctx )
74+ if err != nil {
75+ return err
76+ }
77+
7478 d .locker = locker
7579
7680 log .Info ("[DB] Locker setup" )
7781 return nil
7882}
7983
80- func randomString (n int ) string {
84+ func randomString (n int ) ( string , error ) {
8185 const alphanum = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
8286 var bytes = make ([]byte , n )
83- rand .Read (bytes )
87+ _ , err := rand .Read (bytes )
88+ if err != nil {
89+ return "" , err
90+ }
91+
8492 for i , b := range bytes {
8593 bytes [i ] = alphanum [b % byte (len (alphanum ))]
8694 }
87- return string (bytes )
95+ return string (bytes ), nil
8896}
8997
9098// XLock locks a resource for exclusive access
9199func (d * MongoDatabase ) XLock (resourceId string ) (string , error ) {
92100 ctx , cancel := context .WithTimeout (context .Background (), time .Duration (Config .MongoDB .TimeoutMillis )* time .Millisecond )
93101 defer cancel ()
94102
95- lockId := randomString (32 )
96- err := d .locker .XLock (ctx , resourceId , lockId , lock.LockDetails {
103+ lockId , err := randomString (32 )
104+ if err != nil {
105+ return "" , err
106+ }
107+ err = d .locker .XLock (ctx , resourceId , lockId , lock.LockDetails {
97108 TTL : 60 , // locks expire in 60 seconds
98109 })
99110 return lockId , err
@@ -104,8 +115,11 @@ func (d *MongoDatabase) SLock(resourceId string) (string, error) {
104115 ctx , cancel := context .WithTimeout (context .Background (), time .Duration (Config .MongoDB .TimeoutMillis )* time .Millisecond )
105116 defer cancel ()
106117
107- lockId := randomString (32 )
108- err := d .locker .SLock (ctx , resourceId , lockId , lock.LockDetails {
118+ lockId , err := randomString (32 )
119+ if err != nil {
120+ return "" , err
121+ }
122+ err = d .locker .SLock (ctx , resourceId , lockId , lock.LockDetails {
109123 TTL : 60 , // locks expire in 60 seconds
110124 }, - 1 )
111125 return lockId , err
@@ -242,13 +256,16 @@ func InitDB() {
242256
243257 err := db .Connect ()
244258 if err != nil {
245- log .Fatal (err )
259+ log .Fatal ("[DB] Failed to connect to database: " , err )
246260 }
247261 err = db .SetupIndexes ()
248262 if err != nil {
249- log .Fatal (err )
263+ log .Fatal ("[DB] Failed to setup indexes: " , err )
250264 }
251265 err = db .SetupLocker ()
266+ if err != nil {
267+ log .Fatal ("[DB] Failed to setup locker: " , err )
268+ }
252269 log .Info ("[DB] Database initialized" )
253270
254271 DB = db
0 commit comments