text: Title: [RunPod] Resource mismatch in catalog causes crash
  Body: `sky launch --gpus L4:1 --memory 500+` with RunPod enabled causes a hard crash instead of gracefully removing runpod instances from the candidate resources:
  
  ```
  (base) ➜  ~ sky launch --gpus L4:1 --memory 500+
  D 01-27 18:16:57 skypilot_config.py:228] Using config path: /Users/romilb/.sky/config.yaml
  D 01-27 18:16:57 skypilot_config.py:233] Config loaded:
  D 01-27 18:16:57 skypilot_config.py:233] {'jobs': {'controller': {'resources': {'cloud': 'gcp',
  D 01-27 18:16:57 skypilot_config.py:233]                                        'cpus': '128+',
  D 01-27 18:16:57 skypilot_config.py:233]                                        'disk_size': 1024,
  D 01-27 18:16:57 skypilot_config.py:233]                                        'region': 'us-central1'}}}}
  D 01-27 18:16:57 skypilot_config.py:245] Config syntax check passed.
  D 01-27 18:16:58 optimizer.py:294] #### Task<name=sky-cmd>(run=<empty>)
  D 01-27 18:16:58 optimizer.py:294]   resources: <Cloud>(mem=500+, {'L4': 1}) ####
  D 01-27 18:16:58 common.py:232] Updated Lambda catalog lambda/vms.csv.
  Traceback (most recent call last):
    File "/Users/romilb/tools/anaconda3/bin/sky", line 8, in <module>
      sys.exit(cli())
    File "/Users/romilb/tools/anaconda3/lib/python3.9/site-packages/click/core.py", line 1157, in __call__
      return self.main(*args, **kwargs)
    File "/Users/romilb/tools/anaconda3/lib/python3.9/site-packages/click/core.py", line 1078, in main
      rv = self.invoke(ctx)
    File "/Users/romilb/Romil/Berkeley/Research/sky-experiments/sky/utils/common_utils.py", line 366, in _record
      return f(*args, **kwargs)
    File "/Users/romilb/Romil/Berkeley/Research/sky-experiments/sky/cli.py", line 838, in invoke
      return super().invoke(ctx)
    File "/Users/romilb/tools/anaconda3/lib/python3.9/site-packages/click/core.py", line 1688, in invoke
      return _process_result(sub_ctx.command.invoke(sub_ctx))
    File "/Users/romilb/tools/anaconda3/lib/python3.9/site-packages/click/core.py", line 1434, in invoke
      return ctx.invoke(self.callback, **ctx.params)
    File "/Users/romilb/tools/anaconda3/lib/python3.9/site-packages/click/core.py", line 783, in invoke
      return __callback(*args, **kwargs)
    File "/Users/romilb/Romil/Berkeley/Research/sky-experiments/sky/utils/common_utils.py", line 386, in _record
      return f(*args, **kwargs)
    File "/Users/romilb/Romil/Berkeley/Research/sky-experiments/sky/cli.py", line 1166, in launch
      _launch_with_confirm(task,
    File "/Users/romilb/Romil/Berkeley/Research/sky-experiments/sky/cli.py", line 603, in _launch_with_confirm
      dag = sky.optimize(dag)
    File "/Users/romilb/Romil/Berkeley/Research/sky-experiments/sky/utils/common_utils.py", line 386, in _record
      return f(*args, **kwargs)
    File "/Users/romilb/Romil/Berkeley/Research/sky-experiments/sky/optimizer.py", line 135, in optimize
      unused_best_plan = Optimizer._optimize_dag(
    File "/Users/romilb/Romil/Berkeley/Research/sky-experiments/sky/optimizer.py", line 1066, in _optimize_dag
      Optimizer._estimate_nodes_cost_or_time(local_topo_order,
    File "/Users/romilb/Romil/Berkeley/Research/sky-experiments/sky/optimizer.py", line 300, in _estimate_nodes_cost_or_time
      _fill_in_launchable_resources(
    File "/Users/romilb/Romil/Berkeley/Research/sky-experiments/sky/optimizer.py", line 1297, in _fill_in_launchable_resources
      feasible_list = subprocess_utils.run_in_parallel(
    File "/Users/romilb/Romil/Berkeley/Research/sky-experiments/sky/utils/subprocess_utils.py", line 129, in run_in_parallel
      return list(ordered_iterators)
    File "/Users/romilb/tools/anaconda3/lib/python3.9/multiprocessing/pool.py", line 870, in next
      raise value
    File "/Users/romilb/tools/anaconda3/lib/python3.9/multiprocessing/pool.py", line 125, in worker
      result = (True, func(*args, **kwds))
    File "/Users/romilb/Romil/Berkeley/Research/sky-experiments/sky/optimizer.py", line 1299, in <lambda>
      (cloud, cloud.get_feasible_launchable_resources(r, n)),
    File "/Users/romilb/Romil/Berkeley/Research/sky-experiments/sky/utils/common_utils.py", line 386, in _record
      return f(*args, **kwargs)
    File "/Users/romilb/Romil/Berkeley/Research/sky-experiments/sky/clouds/cloud.py", line 411, in get_feasible_launchable_resources
      return self._get_feasible_launchable_resources(resources)
    File "/Users/romilb/Romil/Berkeley/Research/sky-experiments/sky/clouds/runpod.py", line 240, in _get_feasible_launchable_resources
      return resources_utils.FeasibleResources(_make(instance_list),
    File "/Users/romilb/Romil/Berkeley/Research/sky-experiments/sky/clouds/runpod.py", line 201, in _make
      r = resources.copy(
    File "/Users/romilb/Romil/Berkeley/Research/sky-experiments/sky/resources.py", line 1261, in copy
      resources = Resources(
    File "/Users/romilb/Romil/Berkeley/Research/sky-experiments/sky/resources.py", line 247, in __init__
      self._try_validate_cpus_mem()
    File "/Users/romilb/Romil/Berkeley/Research/sky-experiments/sky/resources.py", line 830, in _try_validate_cpus_mem
      raise ValueError(
  ValueError: 1x_L4_SECURE does not have enough memory. 1x_L4_SECURE has 24.0 GB memory, but 500+ is requested.
  ```