@@ -54,8 +54,9 @@ const (
5454 DefaultBackoffMaxDelay = 60 * time .Second
5555 DefaultBackoffDelayFactor = 2
5656 DefaultLockReleaseTimeout = 120 * time .Second
57- DefaultConnectTimeout = 30 * time .Second
58- DefaultOperationTimeout = 60 * time .Second
57+ DefaultConnectTimeout = 10 * time .Second
58+ DefaultAttemptTimeout = 30 * time .Second
59+ DefaultTotalTimeout = 2 * time .Minute
5960 DefaultPrettyPrintLogs = true
6061)
6162
@@ -150,7 +151,8 @@ type Client struct {
150151 BackoffDelayFactor float64
151152 LockReleaseTimeout time.Duration
152153 ConnectTimeout time.Duration
153- OperationTimeout time.Duration
154+ AttemptTimeout time.Duration // Timeout for a single operation attempt (scrapligo timeout)
155+ TotalTimeout time.Duration // Total timeout across all retry attempts
154156
155157 // Capability tracking
156158 Capabilities []string
@@ -219,7 +221,7 @@ func (c *Client) buildScrapligoOptions() []util.Option {
219221 options .WithAuthPassword (c .password ),
220222 options .WithPort (c .Port ),
221223 options .WithTimeoutSocket (c .ConnectTimeout ),
222- options .WithTimeoutOps (c .OperationTimeout ),
224+ options .WithTimeoutOps (c .AttemptTimeout ),
223225 options .WithTransportType (transport .StandardTransport ),
224226 }
225227
@@ -248,7 +250,8 @@ func NewClient(host string, opts ...func(*Client)) (*Client, error) {
248250 BackoffDelayFactor : DefaultBackoffDelayFactor ,
249251 LockReleaseTimeout : DefaultLockReleaseTimeout ,
250252 ConnectTimeout : DefaultConnectTimeout ,
251- OperationTimeout : DefaultOperationTimeout ,
253+ AttemptTimeout : DefaultAttemptTimeout ,
254+ TotalTimeout : DefaultTotalTimeout ,
252255 logger : & NoOpLogger {},
253256 prettyPrintLogs : DefaultPrettyPrintLogs ,
254257 redactionPatterns : defaultRedactionPatterns ,
@@ -1348,7 +1351,7 @@ func (c *Client) sendRPC(ctx context.Context, req *Req) (Res, error) {
13481351 // Apply timeout with proper priority:
13491352 // 1. Request-specific timeout (highest priority)
13501353 // 2. Context deadline (if already set)
1351- // 3. Default operation timeout (fallback)
1354+ // 3. Default total timeout (fallback - spans all retry attempts )
13521355 if req .Timeout > 0 {
13531356 // Request-specific timeout takes precedence
13541357 var cancel context.CancelFunc
@@ -1357,7 +1360,7 @@ func (c *Client) sendRPC(ctx context.Context, req *Req) (Res, error) {
13571360 } else if _ , hasDeadline := ctx .Deadline (); ! hasDeadline {
13581361 // Only apply default if no deadline already set
13591362 var cancel context.CancelFunc
1360- ctx , cancel = context .WithTimeout (ctx , c .OperationTimeout )
1363+ ctx , cancel = context .WithTimeout (ctx , c .TotalTimeout )
13611364 defer cancel ()
13621365 }
13631366
0 commit comments