Skip to content

Intermittent error handling in poll #13

@krasnoukhov

Description

@krasnoukhov

We've been getting a following message running this package in production:

Forbidden [no error message] 
    node_modules/aws-sdk/lib/services/s3.js:557:35 Request.extractError
    node_modules/aws-sdk/lib/sequential_executor.js:105:20 Request.callListeners
    node_modules/aws-sdk/lib/sequential_executor.js:77:10 Request.emit
    node_modules/aws-sdk/lib/request.js:683:14 Request.emit
    node_modules/aws-sdk/lib/request.js:22:10 Request.transition
    node_modules/aws-sdk/lib/state_machine.js:14:12 AcceptorStateMachine.runTo
    node_modules/aws-sdk/lib/state_machine.js:26:10 
    node_modules/aws-sdk/lib/request.js:38:9 Request.<anonymous>
    node_modules/aws-sdk/lib/request.js:685:12 Request.<anonymous>
    node_modules/aws-sdk/lib/sequential_executor.js:115:18 Request.callListeners

It seems to be very flaky. Usually it starts to appear after fastboot has been running for a while with no restarts. I suspect it could be due to some network issues.

However, looking at the current poll code:

poll() {
this.s3.headObject(this.params).promise()
.then(data => {
this.compareLastModifieds(data.LastModified);
this.schedulePoll();
});
}

It does not seem like errors are handled. So if headObject fails the notifier will stop the polling, effectively preventing future retries. This causes app to not update even if new version is deployed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions