diff --git a/server/vm/docker.ts b/server/vm/docker.ts index 9140bd4ed9..80fe7efb32 100644 --- a/server/vm/docker.ts +++ b/server/vm/docker.ts @@ -49,7 +49,7 @@ export class Docker extends VMManager { ` #!/bin/bash set -e - PORT=$(comm -23 <(seq 5000 5063 | sort) <(ss -Htan | awk '{print $4}' | cut -d':' -f2 | sort -u) | shuf | head -n 1) + PORT=$(comm -23 <(seq 5000 5063 | sort) <(ss -Htan | awk '{print $4}' | cut -d':' -f2 | sort -u) | head -n 1) INDEX=$(($PORT - 5000)) UDP_START=$((59000+$INDEX*100)) UDP_END=$((59099+$INDEX*100)) diff --git a/server/vm/utils.ts b/server/vm/utils.ts index 12cb2e3e79..257fb67b2d 100644 --- a/server/vm/utils.ts +++ b/server/vm/utils.ts @@ -52,17 +52,19 @@ function createVMManager(poolConfig: PoolConfig): VMManager { } export function getVMManagerConfig(): PoolConfig[] { - return config.VM_MANAGER_CONFIG.split(',').map((c) => { - const split = c.split(':'); - return { - provider: split[0], - isLarge: split[1] === 'large', - region: split[2] as PoolRegion, - minSize: Number(split[3]), - limitSize: Number(split[4]), - hostname: split[5], - }; - }); + return config.VM_MANAGER_CONFIG.split(',') + .filter(Boolean) + .map((c) => { + const split = c.split(':'); + return { + provider: split[0], + isLarge: split[1] === 'large', + region: split[2] as PoolRegion, + minSize: Number(split[3]), + limitSize: Number(split[4]), + hostname: split[5], + }; + }); } export function getBgVMManagers(): { [key: string]: VMManager } { diff --git a/server/vmWorker.ts b/server/vmWorker.ts index b71c1ee2f5..87dd9b4737 100644 --- a/server/vmWorker.ts +++ b/server/vmWorker.ts @@ -106,7 +106,7 @@ app.get('/isFreePoolFull', async (req, res) => { return isFull; }), ); - const isFull = fullResult.every(Boolean); + const isFull = freePools.length && fullResult.every(Boolean); res.json({ isFull }); }); diff --git a/src/components/App/App.tsx b/src/components/App/App.tsx index 236ebdfb87..9400313c06 100644 --- a/src/components/App/App.tsx +++ b/src/components/App/App.tsx @@ -2368,6 +2368,25 @@ export default class App extends React.Component { ]} > )} + {this.playingVBrowser() && + isMobile() && + this.state.controller === this.socket.id && ( + + )} {this.playingVBrowser() && (