@@ -3,6 +3,7 @@ package dbtools
33import (
44 "context"
55 "database/sql"
6+ "runtime/debug"
67 "time"
78
89 "github.com/arsham/retry"
@@ -95,22 +96,14 @@ func (t *Transaction) PGX(ctx context.Context, transactions ...func(pgx.Tx) erro
9596 func () {
9697 defer func () {
9798 if r := recover (); r != nil {
98- err = errors .Wrapf (errPanic , "%v" , r )
99+ err = errors .Wrapf (errPanic , "%v\n %s " , r , debug . Stack () )
99100 }
100101 }()
101102 err = fn (tx )
102103 }()
103104 if err != nil {
104105 e := errors .Wrap (tx .Rollback (ctx ), "rolling back transaction" )
105- e = multierror .Append (err , e ).ErrorOrNil ()
106- var (
107- v1 retry.StopError
108- v2 * retry.StopError
109- )
110- if errors .As (err , & v1 ) || errors .As (err , & v2 ) {
111- e = & retry.StopError {Err : e }
112- }
113- return e
106+ return multierror .Append (err , e )
114107 }
115108 }
116109 return errors .Wrap (tx .Commit (ctx ), "committing transaction" )
@@ -140,22 +133,14 @@ func (t *Transaction) DB(ctx context.Context, transactions ...func(Tx) error) er
140133 func () {
141134 defer func () {
142135 if r := recover (); r != nil {
143- err = errors .Wrapf (errPanic , "%v" , r )
136+ err = errors .Wrapf (errPanic , "%v\n %s " , r , debug . Stack () )
144137 }
145138 }()
146139 err = fn (tx )
147140 }()
148141 if err != nil {
149142 e := errors .Wrap (tx .Rollback (), "rolling back transaction" )
150- e = multierror .Append (err , e ).ErrorOrNil ()
151- var (
152- v1 retry.StopError
153- v2 * retry.StopError
154- )
155- if errors .As (err , & v1 ) || errors .As (err , & v2 ) {
156- e = & retry.StopError {Err : e }
157- }
158- return e
143+ return multierror .Append (err , e )
159144 }
160145 }
161146 return errors .Wrap (tx .Commit (), "committing transaction" )
0 commit comments