Skip to content

Commit c0e0446

Browse files
radexfacebook-github-bot
authored andcommitted
Time out packager liveness check after 10s (#31367)
Summary: `isPackagerRunning` check on iOS makes a http request to packager's /status endpoint to check if it's alive... The problem is if the packager can't be reached, but doesn't error out immediately. This can happen, for example, if running the app on device, and host computer's firewall doesn't allow a :8081 connection. In that case, the request will never succeed or fail until default timeout of 60s. It makes debugging the underlying issue quite unbearable. It's hard for me to imagine a legitimate packager connection that wouldn't respond in less than a second, so I propose a conservative timeout of 10s ## Changelog [iOS] [Fixed] - Don't hang app for 60s if packager can't be reached Pull Request resolved: #31367 Test Plan: Checked my app in dev mode to see if packager connects properly. Reviewed By: sammy-SC Differential Revision: D30912047 Pulled By: charlesbdudley fbshipit-source-id: 110743dc45b9cc7d30e49f79ce3b0d5986f7aebd
1 parent 0a46e5e commit c0e0446

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

React/Base/RCTBundleURLProvider.mm

+3-1
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,9 @@ + (BOOL)isPackagerRunning:(NSString *)hostPort scheme:(NSString *)scheme
9090
NSURL *url = [serverRootWithHostPort(hostPort, scheme) URLByAppendingPathComponent:@"status"];
9191

9292
NSURLSession *session = [NSURLSession sharedSession];
93-
NSURLRequest *request = [NSURLRequest requestWithURL:url];
93+
NSURLRequest *request = [NSURLRequest requestWithURL:url
94+
cachePolicy:NSURLRequestUseProtocolCachePolicy
95+
timeoutInterval:10];
9496
__block NSURLResponse *response;
9597
__block NSData *data;
9698

0 commit comments

Comments
 (0)