Skip to content
This repository was archived by the owner on Oct 3, 2023. It is now read-only.

Commit 54d46ea

Browse files
authored
add timeout for AWS MetadataAccessor (#318)
* add timeout for awsMetadataAccessor * style fix
1 parent 99c04ee commit 54d46ea

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

packages/opencensus-resource-util/src/resource-utils.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,12 @@ export async function getAwsEC2Resource(): Promise<Resource> {
123123
*/
124124
async function awsMetadataAccessor<T>(): Promise<T> {
125125
return new Promise((resolve, reject) => {
126+
const timeoutId = setTimeout(() => {
127+
reject(new Error('EC2 metadata api request timed out.'));
128+
}, 2000);
129+
126130
const req = http.get(AWS_INSTANCE_IDENTITY_DOCUMENT_URI, (res) => {
131+
clearTimeout(timeoutId);
127132
const {statusCode} = res;
128133
res.setEncoding('utf8');
129134
let rawData = '';
@@ -142,7 +147,10 @@ async function awsMetadataAccessor<T>(): Promise<T> {
142147
}
143148
});
144149
});
145-
req.on('error', (err) => reject(err));
150+
req.on('error', (err) => {
151+
clearTimeout(timeoutId);
152+
reject(err);
153+
});
146154
});
147155
}
148156

0 commit comments

Comments
 (0)