[SPARK-7871][SQL]Improve the outputPartitioning for HashOuterJoin

https://issues.apache.org/jira/browse/SPARK-7871
Optimize the Full outer join followed by another join with the same equi-join key.
For example:
explain SELECT l.key, m.key, r.key from src l full outer join src m on l.key=m.key full outer join src r on l.key=r.key;

Before this PR: (4 Exchange, and include one Exchange for intermediate result repartitioning, this probably cause huge performance problem)
== Physical Plan ==
Project [key#1,key#3,key#5]
 HashOuterJoin [key#1], [key#5], FullOuter, None
  Exchange (HashPartitioning [key#1], 200), []
   Project [key#1,key#3]
    HashOuterJoin [key#1], [key#3], FullOuter, None
     Exchange (HashPartitioning [key#1], 200), []
      HiveTableScan [key#1], (MetastoreRelation default, src, Some(l)), None
     Exchange (HashPartitioning [key#3], 200), []
      HiveTableScan [key#3], (MetastoreRelation default, src, Some(m)), None
  Exchange (HashPartitioning [key#5], 200), []
   HiveTableScan [key#5], (MetastoreRelation default, src, Some(r)), None

Applied this PR (3 Exchange only for raw table data repartitioning)
== Physical Plan ==
Project [key#1,key#3,key#5]
 HashOuterJoin [key#1], [key#5], FullOuter, None
  Project [key#1,key#3]
   HashOuterJoin [key#1], [key#3], FullOuter, None
    Exchange (HashPartitioning 200)
     HiveTableScan [key#1], (MetastoreRelation default, src, Some(l)), None
    Exchange (HashPartitioning 200)
     HiveTableScan [key#3], (MetastoreRelation default, src, Some(m)), None
  Exchange (HashPartitioning 200)
   HiveTableScan [key#5], (MetastoreRelation default, src, Some(r)), None

However, we don't want to change the logic for being followed by a GROUP BY, whose keys are exactly the same as the join key.

explain SELECT l.key, count(m.value) from src l full outer join src m on l.key=m.key group by l.key;
== Physical Plan ==
Aggregate false, [key#9], [key#9,Coalesce(SUM(PartialCount#14L),0) AS _c1#7L]
 Exchange (HashPartitioning 200)
  Aggregate true, [key#9], [key#9,COUNT(value#12) AS PartialCount#14L]
   Project [key#9,value#12]
    HashOuterJoin [key#9], [key#11], FullOuter, None
     Exchange (HashPartitioning 200)
      HiveTableScan [key#9], (MetastoreRelation default, src, Some(l)), None
     Exchange (HashPartitioning 200)
      HiveTableScan [key#11,value#12], (MetastoreRelation default, src, Some(m)), None
Even the join key exactly the same with the group by key, however, the full outer join probably produce the null value for (l.key), hence we have to add another Exchange for Aggregate.

As we probably involve more factors to determine if data shuffle needed, I've also refactor the entire code for EnsureRequirements, by introducing the Gap of the requiredDistribution and the outputPartitioning.
// to describe the output data distribution.
abstract class Partitioning {
/** the number of partitions that the data is split across */
  numPartitions: Option[Int] = None,

  /** the expressions that are used to key the partitioning. */
  clusterKeys: Seq[Expression] = Nil,

  /** the expression that are used to sort the data. */
  sortKeys: Seq[SortOrder] = Nil,

  /** work with `sortKeys` if the sorting cross or just within the partition. */
  globalOrdered: Boolean = false,

  /** to indicate if null clustering key will be generated. */
  additionalNullClusterKeyGenerated: Boolean = true
}

// to describe the required data distribution to the child operator.
trait Distribution (UnspecifiedDistribution, ClusteredDistribution, OrderedDistribution)

// to describe the additional operations needed to the child operator,
// according to the associated `requiredDistribution` and the child's `outputPartitioning`.
trait Gap(NoGap, SortKeyWithinPartition, GlobalOrdering, RepartitionKey, RepartitionKeyAndSort)

This contains the code refactor for exchange in Spark SQL. It's a WIP PR and still need to do:

[x] Enable more unit tests
[x] Add More Scala Doc
[x] Review all of the existed physical Plan for its requiredDistribution and outputPartitioning

A known issue will be solved in another PR once this PR merged. (https://issues.apache.org/jira/browse/SPARK-2205)

Merged build triggered.

Merged build started.

Test build #33519 has started for   PR 6413 at commit 5e6516f.

Test build #33519 has finished for   PR 6413 at commit 5e6516f.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/33519/
Test FAILed.

Merged build triggered.

Merged build started.

Test build #33589 has started for   PR 6413 at commit 970a2dc.

Test build #33589 has finished for   PR 6413 at commit 970a2dc.

This patch fails Scala style tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
case class ClusteredDistribution(

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/33589/
Test FAILed.

Merged build finished. Test FAILed.

Merged build triggered.

Merged build started.

Test build #33593 has started for   PR 6413 at commit a69f2ae.

Test build #33593 has finished for   PR 6413 at commit a69f2ae.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
case class ClusteredDistribution(

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder/33593/
Test PASSed.

sorry, it will causes performance regression for case like
left join a.key=b.key group by a.key, will figure out how to fix it soon.

Merged build triggered.

Merged build started.

Test build #35457 has started for   PR 6413 at commit b17a74d.

Test build #35457 has finished for   PR 6413 at commit b17a74d.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
case class ClusteredDistribution(
sealed case class Partitioning(

Merged build finished. Test FAILed.

retest this please

Merged build triggered.

Merged build started.

Test build #35498 has started for   PR 6413 at commit b17a74d.

Test build #35498 has finished for   PR 6413 at commit b17a74d.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
case class ClusteredDistribution(
sealed case class Partitioning(

Merged build finished. Test FAILed.

Merged build triggered.

Merged build started.

Test build #35961 has started for   PR 6413 at commit 32d8af0.

Merged build triggered.

Merged build started.

Test build #35965 has started for   PR 6413 at commit e59b4d4.

Test build #35961 has finished for   PR 6413 at commit 32d8af0.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test build #35965 has finished for   PR 6413 at commit e59b4d4.

This patch fails PySpark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

retest this please

Merged build triggered.

Merged build started.

Test build #35975 has started for   PR 6413 at commit e59b4d4.

Test build #35975 has finished for   PR 6413 at commit e59b4d4.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
case class ClusteredDistribution(
sealed case class Partitioning(

Merged build finished. Test PASSed.

@yhuai sorry it's a big change. :) can you review this for me?

Sorry, I found another bug, will solve it soon.

Merged build triggered.

Merged build started.

Test build #36368 has started for   PR 6413 at commit bd37778.

Test build #36368 has finished for   PR 6413 at commit bd37778.

This patch fails Scala style tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
case class ClusteredDistribution(
sealed case class Partitioning(

Merged build finished. Test FAILed.

Merged build triggered.

Merged build started.

Test build #36379 has started for   PR 6413 at commit bd4541d.

Test build #36379 has finished for   PR 6413 at commit bd4541d.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Merged build triggered.

Merged build started.

Test build #36392 has started for   PR 6413 at commit fcb9aed.

Test build #36392 has finished for   PR 6413 at commit fcb9aed.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
case class ClusteredDistribution(
sealed case class Partitioning(

Merged build finished. Test FAILed.

Merged build triggered.

Merged build started.

Test build #36499 has started for   PR 6413 at commit ec4e5c2.

Test build #36499 has finished for   PR 6413 at commit ec4e5c2.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
case class ClusteredDistribution(
sealed case class Partitioning(

Merged build finished. Test PASSed.

Build triggered.

If I'm not mistaken, I think that this patch's changes will be subsumed by the combination of #7773 and the null-unsafe/safe parts of #7685.  Are there any changes in this patch that are missed by the combination of those other two patches?

@JoshRosen Right, #7773 and the null-unsafe/safe parts of #7685 will address the issue.

ok, I am closing this pr.


raise core._status_to_exception(e) from None  # pylint: disable=protected-access tensorflow.python.framework.errors_impl.InvalidArgumentError: {{function_node _wrapped__IteratorGetNext_output_types_16_device/job:localhost/replica:0/task:0/device:CPU:0}} Input is empty. 	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]] 	 [[MultiDeviceIteratorGetNextFromShard]] 	 [[RemoteCall]] [Op:IteratorGetNext]

Click to expand!
Issue Type
Bug
Have you reproduced the bug with TF nightly?
No
Source
source
Tensorflow Version
2.12.0
Custom Code
Yes
OS Platform and Distribution
google colab
Mobile device
No response
Python version
3.10.11
Bazel version
No response
GCC/Compiler version
No response
CUDA/cuDNN version
No response
GPU model and memory
No response
Current Behaviour?
I was training tf2 model faster_rcnn_resnet50_v1_640x640_coco17_tpu-8 with custom dataset exported from cvat directly as .tfrecord. The data consists of jpeg and png files. Wanted to know the error is about.
Standalone code to reproduce the issue
!python object_detection/model_main_tf2.py --model_dir=/content/Faster_RCNN/models/rcnn --pipeline_config_path=/content/Faster_RCNN/models/rcnn/faster_rcnn_resnet50_v1_640x640_coco17_tpu-8_colab.config

Relevant log output
2023-05-24 13:15:30.719812: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.
To enable the following instructions: AVX2 FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.
2023-05-24 13:15:32.136087: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT
/usr/local/lib/python3.10/dist-packages/tensorflow_addons/utils/tfa_eol_msg.py:23: UserWarning:

TensorFlow Addons (TFA) has ended development and introduction of new features.
TFA has entered a minimal maintenance and release mode until a planned end of life in May 2024.
Please modify downstream libraries to take dependencies from other repositories in our TensorFlow community (e.g. Keras, Keras-CV, and Keras-NLP).

For more information see: https://github.com/tensorflow/addons/issues/2807

  warnings.warn(
WARNING:tensorflow:There are non-GPU devices in `tf.distribute.Strategy`, not using nccl allreduce.
W0524 13:15:35.543571<PHONE_NUMBER>00576 cross_device_ops.py:1387] There are non-GPU devices in `tf.distribute.Strategy`, not using nccl allreduce.
INFO:tensorflow:Using MirroredStrategy with devices ('/job:localhost/replica:0/task:0/device:CPU:0',)
I0524 13:15:35.573029<PHONE_NUMBER>00576 mirrored_strategy.py:374] Using MirroredStrategy with devices ('/job:localhost/replica:0/task:0/device:CPU:0',)
INFO:tensorflow:Maybe overwriting train_steps: None
I0524 13:15:35.576818<PHONE_NUMBER>00576 config_util.py:552] Maybe overwriting train_steps: None
INFO:tensorflow:Maybe overwriting use_bfloat16: False
I0524 13:15:35.577034<PHONE_NUMBER>00576 config_util.py:552] Maybe overwriting use_bfloat16: False
WARNING:tensorflow:From /usr/local/lib/python3.10/dist-packages/object_detection/model_lib_v2.py:563: StrategyBase.experimental_distribute_datasets_from_function (from tensorflow.python.distribute.distribute_lib) is deprecated and will be removed in a future version.
Instructions for updating:
rename to distribute_datasets_from_function
W0524 13:15:35.838855<PHONE_NUMBER>00576 deprecation.py:364] From /usr/local/lib/python3.10/dist-packages/object_detection/model_lib_v2.py:563: StrategyBase.experimental_distribute_datasets_from_function (from tensorflow.python.distribute.distribute_lib) is deprecated and will be removed in a future version.
Instructions for updating:
rename to distribute_datasets_from_function
INFO:tensorflow:Reading unweighted datasets: ['/content/Faster_RCNN/data/train1.tfrecord']
I0524 13:15:35.849479<PHONE_NUMBER>00576 dataset_builder.py:162] Reading unweighted datasets: ['/content/Faster_RCNN/data/train1.tfrecord']
INFO:tensorflow:Reading record datasets for input file: ['/content/Faster_RCNN/data/train1.tfrecord']
I0524 13:15:35.849788<PHONE_NUMBER>00576 dataset_builder.py:79] Reading record datasets for input file: ['/content/Faster_RCNN/data/train1.tfrecord']
INFO:tensorflow:Number of filenames to read: 1
I0524 13:15:35.849880<PHONE_NUMBER>00576 dataset_builder.py:80] Number of filenames to read: 1
WARNING:tensorflow:num_readers has been reduced to 1 to match input file shards.
W0524 13:15:35.849966<PHONE_NUMBER>00576 dataset_builder.py:86] num_readers has been reduced to 1 to match input file shards.
WARNING:tensorflow:From /usr/local/lib/python3.10/dist-packages/object_detection/builders/dataset_builder.py:100: parallel_interleave (from tensorflow.python.data.experimental.ops.interleave_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Use `tf.data.Dataset.interleave(map_func, cycle_length, block_length, num_parallel_calls=tf.data.AUTOTUNE)` instead. If sloppy execution is desired, use `tf.data.Options.deterministic`.
W0524 13:15:35.860586<PHONE_NUMBER>00576 deprecation.py:364] From /usr/local/lib/python3.10/dist-packages/object_detection/builders/dataset_builder.py:100: parallel_interleave (from tensorflow.python.data.experimental.ops.interleave_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Use `tf.data.Dataset.interleave(map_func, cycle_length, block_length, num_parallel_calls=tf.data.AUTOTUNE)` instead. If sloppy execution is desired, use `tf.data.Options.deterministic`.
WARNING:tensorflow:From /usr/local/lib/python3.10/dist-packages/object_detection/builders/dataset_builder.py:235: DatasetV1.map_with_legacy_function (from tensorflow.python.data.ops.dataset_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Use `tf.data.Dataset.map()
W0524 13:15:35.890340<PHONE_NUMBER>00576 deprecation.py:364] From /usr/local/lib/python3.10/dist-packages/object_detection/builders/dataset_builder.py:235: DatasetV1.map_with_legacy_function (from tensorflow.python.data.ops.dataset_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Use `tf.data.Dataset.map()
2023-05-24 13:15:37.925062: I tensorflow/core/common_runtime/executor.cc:1197] [/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: You must feed a value for placeholder tensor 'cond/SparseToDense/ParseSingleExample/ParseExample/ParseExampleV2_1' with dtype int64 and shape [1]
	 [[{{node cond/SparseToDense/ParseSingleExample/ParseExample/ParseExampleV2_1}}]]
2023-05-24 13:15:37.925272: I tensorflow/core/common_runtime/executor.cc:1197] [/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: You must feed a value for placeholder tensor 'cond/SparseToDense/ParseSingleExample/ParseExample/ParseExampleV2_1' with dtype int64 and shape [1]
	 [[{{node cond/SparseToDense/ParseSingleExample/ParseExample/ParseExampleV2_1}}]]
2023-05-24 13:15:37.947883: I tensorflow/core/common_runtime/executor.cc:1197] [/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: You must feed a value for placeholder tensor 'cond_1/SparseToDense/ParseSingleExample/ParseExample/ParseExampleV2_1' with dtype int64 and shape [1]
	 [[{{node cond_1/SparseToDense/ParseSingleExample/ParseExample/ParseExampleV2_1}}]]
2023-05-24 13:15:37.948050: I tensorflow/core/common_runtime/executor.cc:1197] [/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: You must feed a value for placeholder tensor 'cond_1/SparseToDense/ParseSingleExample/ParseExample/ParseExampleV2_1' with dtype int64 and shape [1]
	 [[{{node cond_1/SparseToDense/ParseSingleExample/ParseExample/ParseExampleV2_1}}]]
WARNING:tensorflow:From /usr/local/lib/python3.10/dist-packages/tensorflow/python/util/dispatch.py:1176: sparse_to_dense (from tensorflow.python.ops.sparse_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Create a `tf.sparse.SparseTensor` and use `tf.sparse.to_dense` instead.
W0524 13:15:46.278530<PHONE_NUMBER>00576 deprecation.py:364] From /usr/local/lib/python3.10/dist-packages/tensorflow/python/util/dispatch.py:1176: sparse_to_dense (from tensorflow.python.ops.sparse_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Create a `tf.sparse.SparseTensor` and use `tf.sparse.to_dense` instead.
WARNING:tensorflow:From /usr/local/lib/python3.10/dist-packages/tensorflow/python/util/dispatch.py:1176: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Use `tf.cast` instead.
W0524 13:15:51.640419<PHONE_NUMBER>00576 deprecation.py:364] From /usr/local/lib/python3.10/dist-packages/tensorflow/python/util/dispatch.py:1176: to_float (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.
Instructions for updating:
Use `tf.cast` instead.
WARNING:tensorflow:From /usr/local/lib/python3.10/dist-packages/object_detection/builders/optimizer_builder.py:124: The name tf.keras.optimizers.SGD is deprecated. Please use tf.keras.optimizers.legacy.SGD instead.

W0524 13:15:55.215861<PHONE_NUMBER>00576 module_wrapper.py:149] From /usr/local/lib/python3.10/dist-packages/object_detection/builders/optimizer_builder.py:124: The name tf.keras.optimizers.SGD is deprecated. Please use tf.keras.optimizers.legacy.SGD instead.

2023-05-24 13:15:55.277454: I tensorflow/core/common_runtime/executor.cc:1197] [/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: You must feed a value for placeholder tensor 'Placeholder/_28' with dtype resource
	 [[{{node Placeholder/_28}}]]
2023-05-24 13:15:55.278269: I tensorflow/core/common_runtime/executor.cc:1197] [/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: You must feed a value for placeholder tensor 'Placeholder/_26' with dtype resource
	 [[{{node Placeholder/_26}}]]
2023-05-24 13:15:56.001176: W tensorflow/core/framework/dataset.cc:807] Input of GeneratorDatasetOp::Dataset will not be optimized because the dataset does not implement the AsGraphDefInternal() method needed to apply optimizations.
2023-05-24 13:15:56.001868: I tensorflow/core/common_runtime/executor.cc:1197] [/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: You must feed a value for placeholder tensor 'Placeholder/_0' with dtype variant
	 [[{{node Placeholder/_0}}]]
2023-05-24 13:15:56.090299: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.090433: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.091018: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.091127: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.091407: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
	 [[MultiDeviceIteratorGetNextFromShard]]
2023-05-24 13:15:56.091526: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
	 [[MultiDeviceIteratorGetNextFromShard]]
	 [[RemoteCall]]
2023-05-24 13:15:56.091738: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.092306: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.092737: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.093123: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.093491: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.093866: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.094237: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
Traceback (most recent call last):
  File "/content/models/research/object_detection/model_main_tf2.py", line 114, in <module>
2023-05-24 13:15:56.095441: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
    tf.compat.v1.app.run()
  File "/usr/local/lib/python3.10/dist-packages/tensorflow/python/platform/app.py", line 36, in run
    _run(main=main, argv=argv, flags_parser=_parse_flags_tolerate_undef)
  File "/usr/local/lib/python3.10/dist-packages/absl/app.py", line 308, in run
2023-05-24 13:15:56.095675: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
	 [[MultiDeviceIteratorGetNextFromShard]]
2023-05-24 13:15:56.095752: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
	 [[MultiDeviceIteratorGetNextFromShard]]
	 [[RemoteCall]]
    _run_main(main, args)
  File "/usr/local/lib/python3.10/dist-packages/absl/app.py", line 254, in _run_main
    sys.exit(main(argv))
  File "/content/models/research/object_detection/model_main_tf2.py", line 105, in main
    model_lib_v2.train_loop(
  File "/usr/local/lib/python3.10/dist-packages/object_detection/model_lib_v2.py", line 605, in train_loop
2023-05-24 13:15:56.096326: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
    load_fine_tune_checkpoint(
  File "/usr/local/lib/python3.10/dist-packages/object_detection/model_lib_v2.py", line 401, in load_fine_tune_checkpoint
    _ensure_model_is_built(model, input_dataset, unpad_groundtruth_tensors)
  File "/usr/local/lib/python3.10/dist-packages/object_detection/model_lib_v2.py", line 161, in _ensure_model_is_built
    features, labels = iter(input_dataset).next()
  File "/usr/local/lib/python3.10/dist-packages/tensorflow/python/distribute/input_lib.py", line 570, in next
2023-05-24 13:15:56.096794: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
    return self.__next__()
  File "/usr/local/lib/python3.10/dist-packages/tensorflow/python/distribute/input_lib.py", line 574, in __next__
2023-05-24 13:15:56.097219: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
    return self.get_next()
  File "/usr/local/lib/python3.10/dist-packages/tensorflow/python/distribute/input_lib.py", line 631, in get_next
    return self._get_next_no_partial_batch_handling(name)
  File "/usr/local/lib/python3.10/dist-packages/tensorflow/python/distribute/input_lib.py", line 663, in _get_next_no_partial_batch_handling
    replicas.extend(self._iterators[i].get_next_as_list(new_name))
  File "/usr/local/lib/python3.10/dist-packages/tensorflow/python/distribute/input_lib.py", line 1633, in get_next_as_list
2023-05-24 13:15:56.097823: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
    return self._format_data_list_with_options(self._iterator.get_next())
  File "/usr/local/lib/python3.10/dist-packages/tensorflow/python/data/ops/multi_device_iterator_ops.py", line 554, in get_next
2023-05-24 13:15:56.098329: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
    result.append(self._device_iterators[i].get_next())
  File "/usr/local/lib/python3.10/dist-packages/tensorflow/python/data/ops/iterator_ops.py", line 850, in get_next
2023-05-24 13:15:56.098798: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
    return self._next_internal()
  File "/usr/local/lib/python3.10/dist-packages/tensorflow/python/data/ops/iterator_ops.py", line 780, in _next_internal
2023-05-24 13:15:56.099547: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
    ret = gen_dataset_ops.iterator_get_next(
  File "/usr/local/lib/python3.10/dist-packages/tensorflow/python/ops/gen_dataset_ops.py", line 3016, in iterator_get_next
2023-05-24 13:15:56.099617: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.099989: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.100782: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
    _ops.raise_from_not_ok_status(e, name)
  File "/usr/local/lib/python3.10/dist-packages/tensorflow/python/framework/ops.py", line 7262, in raise_from_not_ok_status
2023-05-24 13:15:56.101000: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
    raise core._status_to_exception(e) from None  # pylint: disable=protected-access
tensorflow.python.framework.errors_impl.InvalidArgumentError: {{function_node __wrapped__IteratorGetNext_output_types_16_device_/job:localhost/replica:0/task:0/device:CPU:0}} Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
	 [[MultiDeviceIteratorGetNextFromShard]]
	 [[RemoteCall]] [Op:IteratorGetNext]
2023-05-24 13:15:56.103550: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.103816: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.104496: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.104658: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.105043: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.105429: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.105806: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.106484: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.106894: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.107015: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.107396: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.107756: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.108109: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.108526: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.108955: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.109404: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.109817: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.110237: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.110613: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.110994: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.111395: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.111747: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.112100: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.112497: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.112846: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.113208: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.113573: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.113922: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.114299: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.114678: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.115032: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.115403: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.115763: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.116113: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.116518: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.116873: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.117547: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.117940: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.118389: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.118793: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.119174: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.119549: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.119900: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.120278: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.120634: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.120982: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.121383: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.121736: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.122088: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.203328: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.203989: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.205749: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.206195: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.206597: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.206974: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.207053: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.207429: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.207779: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.208119: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.208490: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.208836: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.209531: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.209609: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.209959: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.210641: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.210715: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.211039: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.211716: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]
2023-05-24 13:15:56.211832: I tensorflow/core/common_runtime/executor.cc:1197] [/job:localhost/replica:0/task:0/device:CPU:0] (DEBUG INFO) Executor start aborting (this does not indicate an error and you can ignore this message): INVALID_ARGUMENT: Input is empty.
	 [[{{function_node case_cond_cond_jpeg_false_219}}{{node case/cond/cond_jpeg/decode_image/DecodeImage}}]]

@Pranil51,
Could you please provide the complete reproducible code or the colab gist to analyse the issue in an effective way. Thank you!


Missing property in internal link object trigger internal error

add check for undefined properties on internalLink object so it doesnt break page, but gives console warning and the link is not rendered as link but plain text?

could not recreate, but i know it happens as it appears in radix logs


what is "rebuild"

I'm installing infer with ./build-infer.sh java, and I get an error:configure: error: rebuild not found.
initializing opam...
[WARNING] Running as root is not recommended
[WARNING] Running as root is not recommended
preparing build...
checking for .release... no
checking for .facebook... no
checking for python2.7... python2.7
checking for xcode-select... no
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc -std=gnu99 accepts -g... yes
checking for gcc -std=gnu99 option to accept ISO C89... none needed
checking for gawk... gawk
checking for a BSD-compatible install... /usr/bin/install -c
checking whether ln -s works... yes
checking whether make sets $(MAKE)... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for ocamlc... ocamlc
OCaml version is 4.02.3
OCaml library path is /usr/local/lib/ocaml
checking for ocamlopt... ocamlopt
checking for ocamlc.opt... ocamlc.opt
checking for ocamlopt.opt... ocamlopt.opt
checking for dynlink.cmxa... yes
checking for ocaml... ocaml
checking for ocamldep... ocamldep
checking for ocamlmktop... ocamlmktop
checking for ocamlmklib... ocamlmklib
checking for ocamldoc... ocamldoc
checking for ocamlbuild... ocamlbuild
checking if OCaml version is >= 4.02.3... yes
checking for ocamlfind... ocamlfind
checking for ocamllex... ocamllex
checking for ocamllex.opt... ocamllex.opt
checking for ocamlyacc... ocamlyacc
checking for rebuild... no
configure: error: rebuild not found.

rebuild is installed as part of Reason, follow the instructions on GitHub to install Reason. The error message should be better though, thanks for the report.

Thank you for your solution~
But I get another error when I installing Reason
merlin is now git-pinned to https://github.com/the-lambda-church/merlin.git#reason-0.0.1
[ERROR] Command "git fetch -q origin +reason-0.0.1:refs/remotes/opam-ref" failed:
opam-version 1.2.2
os           linux
command      git fetch -q origin +reason-0.0.1:refs/remotes/opam-ref
path         /root/.opam/4.02.3/packages.dev/merlin
exit-code    128
env-file     /root/.opam/log/log-6774-58c514.env
stdout-file  /root/.opam/log/log-6774-58c514.out
stderr-file  /root/.opam/log/log-6774-58c514.err
stderr
fatal: Couldn't find remote ref reason-0.0.1

@chen881129 can you do  opam update and try again the step
opam pin add -y merlin 'https://github.com/the-lambda-church/merlin.git#reason-0.0.1.

@cristianoc
"opam update" before the step and the result is the same.
opam update
[WARNING] Running as root is not recommended

=-=- Updating package repositories =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[default] synchronized from https://opam.ocaml.org

opam pin add -y merlin 'https://github.com/the-lambda-church/merlin.git#reason-0.0.1'
[WARNING] Running as root is not recommended
[NOTE] Package merlin is already git-pinned to https://github.com/the-lambda-church/merlin.git#reason-0.0.1.
       This will erase any previous custom definition.
Proceed ? [Y/n] y

[ERROR] Command "git fetch -q origin +reason-0.0.1:refs/remotes/opam-ref" failed:
# opam-version 1.2.2
# os           linux
# command      git fetch -q origin +reason-0.0.1:refs/remotes/opam-ref
# path         /root/.opam/4.02.3/packages.dev/merlin
# exit-code    128
# env-file     /root/.opam/log/log-16912-58c514.env
# stdout-file  /root/.opam/log/log-16912-58c514.out
# stderr-file  /root/.opam/log/log-16912-58c514.err
### stderr ###
# fatal: Couldn't find remote ref reason-0.0.1

@chen881129 looks like the tag reason-0.0.1 is not found.
But it's there: https://github.com/the-lambda-church/merlin/commits/reason-0.0.1
The last commit there is 87ea0e7998c04f16e4821676c27f19d3879dc2d1.
So you could instead try the more direct
opam pin add -y merlin https://github.com/the-lambda-church/merlin.git#87ea0e7998c04f16e4821676c27f19d3879dc2d1

The problem shouldn't happen anymore - we install reason as part of ./build-infer script now
https://github.com/facebook/infer/commit/1420cabac5cdb1a7cb1d0999f48f1a7a6af80457

I have the same problem on Centos 6

@mishudark Can you please provide more information? Please include:

the version of Infer
the command you ran
the full output (please use https://gist.github.com/ or equivalent)

@jvanzyl sure
os: CentOS release 6.8 (Final)
infer version: infer-linux64-v0.9.2$
command: sh build-infer.sh
output:
[ERROR] Command "git fetch -q origin +reason-0.0.1:refs/remotes/opam-ref" failed:
# opam-version 1.2.2
# os           linux
# command      git fetch -q origin +reason-0.0.1:refs/remotes/opam-ref
# path         /home/mishu/.opam/4.02.3/packages.dev/merlin
# exit-code    128
# env-file     /home/mishu/.opam/log/log-16626-58c514.env
# stdout-file  /home/mishu/.opam/log/log-16626-58c514.out
# stderr-file  /home/mishu/.opam/log/log-16626-58c514.err
### stderr ###
# fatal: Couldn't find remote ref reason-0.0.1
```

@mishudark The version of git might be too old on your system. You'll need to install Reason manually for now I'm afraid. Something like this may work:

select the infer-4.02.3 opam switch: opam switch infer-4.02.3 && eval $(opam config env)
clone the Reason repo locally, checkout its 0.0.1 release, then opam pin add -k git reason . inside the repo should install reason from there
run ./build-infer.sh from the infer repo again

Hope this helps!


String representation of arrow functions

Current implementation:
>>> const f = () => 0;
undefined
>>> f;
[object Object]

Expected implementation:
>>> const f = () => 0;
undefined
>>> f;
() => 0

Or to similar effect.

^ The behaviour above is already implemented. Issue is with representation of es.CallExpressions in instances of MaximumStackLimtExceeded. [object Object] comes from node:es.CallExpression.arguments which is an array of es.Node objects.

Resolved in 01591c3


cache strategy with staleWhileRevalidate and broadcastUpdate

I'm using staleWhileRevalidate()
my code
workbox.routing.registerRoute (
      new RegExp ('https://api-production.vimbo.com/v1/*'),
     workbox.strategies.staleWhileRevalidate ({
          plugins: [
             new workbox.broadcastUpdate.Plugin ('api-updates', {
                 headersToCheck: ['last-modified'],
             })
          ]
      })
  );
On my client, I'm getting the change notification

my question, is this cache update made automated after being notified?
Do I need to do something to force caching?

@jeffposnick or @philipwalton can you help me ?

The cache updates (the "revalidate" step in stale-while-revalidate") happen automatically. The broadcast of the change notification will only happen after a revalidate takes place, and only if the response fetch()ed during the revalidation differed from the previously cached response.

perfect @jeffposnick  , but in my case this is not happening well.
I'm working with the value in header last-modified
step by step
1 - I got to the list of records, where it cached the values, including the last-modified header value.
2 - clicked edit and saved
3 - I was redirected to listing, where he made a new http request
Note: When it came back in the list, in step 3, it performed http again, actually it noticed that it changed the last-modified field, however I am already in the list and without the updated data, hence I have to force an update on the page by pressing F5.

probably similar to this
https://github.com/GoogleChrome/workbox/issues/1498

Good point—can you check to see if the Last-Modified header isn't being exposed when accessing the CORS response due to the scenario outlined in #1498?

I did recently chat with someone who was able to successfully use StaleWhileRevalidate and the BroadcastUpdatePlugin, so I think it's working in general.
If you need more control over determining what triggers a broadcast, I'd recommend adding in your own custom Workbox plugin that implemented the cacheDidUpdate callback, and you can examine whatever properties of the old and newly cached responses you need inside of that.


API Documentation

I am newish to jquery, etc and I have been trying for hours, but how do I use the getSignatureImage function? I cannot find anything anywhere on how to really use this correctly and nothing I do seems to work.
This is what I have now, but I know it is wrong. (the sig value is just an example for now)
                    $(document).ready(function() {
					var sig = {lx:20,ly:34,mx:20,my:34}

					var api = $('.sigPad').signaturePad({displayOnly:true})
					api.getSignatureImage()
                    });

How do I get my signature to regenerate into the getSignatureImage? It would be great if this was documented on your site. I just am not really clear on how to use it.. am I supposed to be able to save the image somehow, or is it returning the image as  to the browser?
The reason is because I am using a HTML to PDF component and it does not display the canvas. But will display an image.

There is a tutorial and example of regenerating a signature in the documentation:
http://thomasjbradley.ca/lab/signature-pad#regenerate
But, you won't be able to get the signature regenerated without canvas. If canvas was available you could do this:
$(document).ready(function() {
  var sig = {lx:20,ly:34,mx:20,my:34}

  var api = $('.sigPad').signaturePad({displayOnly:true})
  api.regenerate(sig)
  var imgData = api.getSignatureImage()
});

The .regenerate(sig) method will redraw the signature onto the canvas.
The .getSignatureImage() method just calls canvas and exports its content as an image into a Base64 encoded string.

Ok, I figured out how this works now, but I was wondering is there a way that when I submit the form, the value of the output could be the return from getSignatureImage() instead of the json?

Yeah, something like this may work:
$('form.sigPad').submit(function (ev) {
  $('input[name="output"]').val(api.getSignatureImage());
});

ok perfect thanks.


configure_optimizers must include a monitor when a ReduceLROnPlateau scheduler is used.

First of all, I know that the issue is existing in closed issues. But the problem is that there was no answer given how to fix it, so I don't know what to do.
I'm getting the following as error:
pytorch_lightning.utilities.exceptions.MisconfigurationException: configure_optimizers must include a monitor when a ReduceLROnPlateau scheduler is used. For example: {"optimizer": optimizer, "lr_scheduler": scheduler, "monitor": "metric_to_track"}
I don't know where I would have to put this monitor or if I really need it.
I somewhere read it could have something to do with the pytorch_lightning and I tried to downgrade it to version 1.1.1.
This giving the following error:
ImportError: cannot import name 'Batch' from 'torchtext.data' (/usr/local/lib/python3.7/dist-packages/torchtext/data/init.py)
Here I found out that I have to use the git version (the other option didn't help me).
So I would appreciate your help.

Ok I fixed it with the following link when somebody needs it:
https://github.com/PyTorchLightning/pytorch-lightning/issues/5945


[enhancement]: SoloCam S40

Describe the solution you'd like
Hello,
will the SoloCam S40 be supported soon? Or isn´t it possible because of hardware issues?
With best regards.
Sebastiano

Hi @Sebi1975
Unfortunately I don't have a listing which device corresponds to which serial number and to which internal type-id from eufy.
When you start the plugin (e.g. restart homebridge) there should be a line saying something like This accessory is not compatible with HomeBridge Eufy Security plugin:...
Can you copy this here?

According to this issue on the client library it should already be supported.
https://github.com/bropat/eufy-security-client/issues/54
However there might still be a battery drain issue
https://github.com/bropat/eufy-security-client/issues/54

stale


Replace kwm integration layer with a more general one

Since chunkwm is coming along pretty nicely, it would be cool to add support for it. But instead of adding other specific code I was thinking of adding a more general integration layer.

Remove kwm specific code

Add to mode structure 2 more fields:

onEnterCommand : when entering a mode
onExitCommand : when quitting a mode

and remove the colour field.

Refactor remaining code to suite new structure and functionality.

Thoughts?

Being able to generalize this would be a good change indeed

I think the onExitCommand is redundant, as we always enter a new mode upon exit.

khd kwm on and kwm specific code has been removed.
khd mode <mode> color property has been removed.
`khd mode  on_enter  has been added.
before:
khd kwm on
khd mode prefix color 0xffff0000

after:
khd mode prefix on_enter kwmc config border focused color 0xffff0000

replace kwmc .. command with whatever, e.g: chunkc <something> or however we end up controlling borders in that system.


Radiates Heat In Space - Game Freezes on Startup

Radiates Heat In Space causes the game to freeze on startup, even with no other mods enabled. It does not produce the generic "mods disabled" error message. The only way to recover is to kill the process, and delete the mod.

Same for me, something to do with DbInit


nimble/ll:: Make LL task stack size configurable

This commit makes LL stack size configurable. Depending on compiler and
platform default value may not be enough. It was reported that on nRF52840
90 words is not enough even if Ext Adv is disabled. To keep things simple
lets just increase default stack size to 120 word for all usecases (with
exception of nRF51 where defults to 96 bytes).

why this is defined in phy instead of controller pkg?


refactor: Refactor reports for Charts and Dashboards

SUMMARY

Reports for Dashboards and Charts was a feature that we released in September, due to time constraints, we had a lot of code that was replicated in several places. This PR looks to go through and refactor reports so that the code is more DRY and restful.
The major refactor is that all of the api calls, and refreshing, happens within the component now. Before it existed in the Charts header and the dashboard header. We also went through and refactored the redux state to be more generalized.
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF

TESTING INSTRUCTIONS

ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Required feature flags:
[ ] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

/testenv up

/testenv up FEATURE_ALERT_REPORTS=True

/testenv up FEATURE_ALERT_REPORTS=True

tested the crud operations for a report on a chart and a dashboard, toggle active, edit. LGTM


Fix minimum image size for cl_ext_image_requirements_info

Some new extension formats require the width to be a multiple of 4 or 2 (see cl_ext_image_raw10_raw12).
Change has not functional impact as the affected image is only used for generic queries.

Merging as discussed in the August 29th teleconference.


/en-US/docs/Mozilla/Thunderbird/Thunderbird_extensions/Building_a_Thunderbird_extension

i can't get source , using "hg clone" described in "https://developer.thunderbird.net/the-basics/getting-started".
all 5 times  stopped in step"adding file changes", and end by "socket.error: [Errno 10054]"
Details
$ hg clone https://hg.mozilla.org/mozilla-central source5/
applying clone bundle from https://hg.cdn.mozilla.net/mozilla-central/cf48e59e88dec9bd29a53e2ed1a836537a439426.zstd-max.hg
adding changesets
adding manifests
adding file changes
files [                                                                                ]   4056/568637 51m25s

i closed win10-firewall, and successed on 7th


CI pipeline fails because package index isn't updated before installation of metacity

Describe the bug
The CI pipeline fails.
This is due to this bug: https://github.com/actions/virtual-environments/issues/3661.
Expected behavior
Everything should install fine.
Additional context
The fix for this is to simply run sudo apt-get update before installing packages.

Fixed in https://github.com/stephandruskat/hexatomic/commit/fe858af9047f1d50de86bb60758a64946966444a, so will be fixed for develop if/when the PR #321 is merged.


Fix path checking for FileWatcher for virtual workspace projects

Objective
Fixes issue #16789
https://github.com/bevyengine/bevy/issues/16879
Solution
Moved the construction of the root path of the assets folder out of FileWatcher::new() and into source.rs, as the path is checked there with path.exists() and fails in certain configurations eg., virtual workspaces.
Testing
Applied fix to a private fork and tested against both standard project setups and virtual workspaces. Works without issue on both. Have tested under macOS and Arch Linux.

@super-saturn can you explain why you closed this so others trying to fix this bug better understand what's going on?

@alice-i-cecile Apologies, this just has a small issue, I was merging these fixes in from my own cloned copy of bevy, and I was trying to be very clean about what I picked and this won't compile as-is. Triple-checking my work before I make a small change and re-open.


[SPARK-48846][PYTHON][DOCS][FOLLOWUP]  Add a missing param doc in python api partitioning functions docs.

What changes were proposed in this pull request?

Add a missing param in func docs of partitioning.py.
Why are the changes needed?

Make python api docs better.

Does this PR introduce any user-facing change?

No.
How was this patch tested?

Pass GA and docs check.
Was this patch authored or co-authored using generative AI tooling?

No.

cc @HyukjinKwon

Merged to master.


Closing #357 using CONTRIBUTING.md

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)

Updating the UI of DocsGPT in Figma.

Why was this change needed? (You can also link to an open issue here)

Solving issue #357.

Other information:

@holopin-bot @outlivo

Hey @outlivo lease send me you phone number on<EMAIL_ADDRESS>I need it to sucessfully ship a t-shirt for you.
Thank you!


Use acli to sync database from Acquia

The Problem/Issue/Bug:
Acquia Cloud may default to outdated drush versions. Additionally, Drush has a longstanding problem of including error output in sql-dump. Therefore if there happens to be a missmatch of the drush version, the gzipped database file may contain error text like this:
Deprecated: Required parameter $args follows optional parameter $command in /usr/local/drush9/vendor/drush/drush/includes/batch.inc on line 115

Deprecated: Required parameter $options follows optional parameter $command in /usr/local/drush9/vendor/drush/drush/includes/batch.inc on line 115

Resulting in an error running the pull command:
Pull failed: failed to extract provided archive: gzip: invalid header

How this PR Solves The Problem:

Replace drush sql-dump with acli pull:db.
Using the --no-import option, acli pull:db sends the db snapshot file to the /tmp/ folder with a special name.  Therefore the pushd to the .downloads folder is no longer necessary.  But also, worth pointing out we have no control over the filename unfortunately, or piping the output elsewhere. Therefore, this script assumes there's not going to be another sql.gz in the tmp folder.  Maybe we should rm /tmp/*.sql.gz.

Maybe replace drush rsync with acli pull:files as well?
It would be nice to consider this for consistency, however acli pull:files has no option to exclude js,css,styles folders, like the existing drush rsync command does. Therefore, this change has been excluded from the PR.

Manual Testing Instructions:
Create a drupal 9 project linked to an acquia environment.
mv .ddev/providers/acquia.yaml.example .ddev/providers/acquia.yaml
Update the project_id in .ddev/providers/acquia.yaml
Execute ddev pull acquia.
Automated Testing Overview:
Not sure there is a way to wire up automated tests for this, to be honest.
Related Issue Link(s):
Release/Deployment notes:
Nothing else should be affected.

Here is actual test output from a real project, where project details have been obfuscated:
❯ ddev pull dev
You're about to delete the current database and files and replace with the results of a fresh pull.
Would you like to continue? [Y/n] (yes): Y
Authenticating...
Saved credentials to /home/jameswilson/.acquia/cloud_api.conf
Obtaining database...
    ⌛ Creating an on-demand database backup on Cloud Platform...

    ✔ Creating an on-demand database backup on Cloud Platform
    ✔ Waiting for database backup to complete...
    ✔ Downloading Drupal database copy from the Cloud Platform

 [OK] Database backup downloaded to /tmp/dev-project-projectdev-2022-05-27T15:59:56+00:00.sql.gz

Importing database...
32.3MiB 0:00:02 [15.0MiB/s] [============================================================================================================>] 100%
Ensuring write permissions for project
Existing settings.php file includes settings.ddev.php
Obtaining files...

Box Requirements Checker
========================

> Using PHP 8.0.13
> PHP is using the following php.ini file:
  /etc/php/8.0/cli/php.ini

> Checking Box requirements:
  ✔ The application requires the version "^7.3 | ^8.0" or greater.
  ✔ The application requires the extension "json".
  ✔ The package "brick/math" requires the extension "json".
  ✔ The package "guzzlehttp/guzzle" requires the extension "json".
  ✔ The package "ramsey/uuid" requires the extension "json".
  ✔ The package "zumba/amplitude-php" requires the extension "curl".

Composer script `pre-acli-pull-files` does not exist in `/var/www/html/composer.json`, skipping.
Acquia CLI version: 1.14.0
[debug] Using environment DEV AAAAAA-BBBBBBBB-CCCC-DDDD-EEEE-FFFFFFFFFFFF
    ⌛ Copying Drupal's public files from the Cloud Platform...

[notice] Command: 'which' 'ssh' [Exit: 0]
[notice] Command: 'ssh'<EMAIL_ADDRESS>'-t' '-o StrictHostKeyChecking=no' '-o AddressFamily inet' '-o LogLevel=ERROR' 'ls' '/mnt/files/project.dev/sites' [Exit: 0]
[debug] Command:  ls /mnt/files/project.dev/sites [Exit: 0]
[notice] Command: 'which' 'rsync' [Exit: 0]
receiving incremental file list

files/

files/.htaccess
              0   0%    0.00kB/s    0:00:00
            487 100%  475.59kB/s    0:00:00 (xfr#1, to-chk=529/531)

[...rsync output truncated for brevity...]

sent 8.74K bytes  received 20.59M bytes  1.18M bytes/sec
total size is 20.55M  speedup is 1.00

    ✔ Copying Drupal's public files from the Cloud Platform
Composer script `post-acli-pull-files` does not exist in `/var/www/html/composer.json`, skipping.
Importing files...
Pull succeeded.

Awesome, thanks!


Shorthand not properly detected in node 5

The following code breaks in node 5 but not in 6. Babel handles it properly.
const get = () => {}
const object = { get }

Fixed in 02e635f!

Fix fixed in d565d8f!


Switch back to ephemeral Jenkins from persistent

Persistent is introducing some issues for the time-being, for instance hanging the build on git rev-parse

d7a3797


[AMBARI-23292] livy.superusers is not getting configured correctly wh…

…en Spark2 and Zeppelin are added as a service later on
Added code which resolving properties in config before we passing it to advisor.
(Please fill in changes proposed in this fix)
How was this patch tested?
Installed cluster with ambari 2.7 + HDP 3.0 + kerberos. Then added Zeppelin and Spark via "add service".
Please review Ambari Contributing Guide before opening a pull request.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-Github-PullRequest-Builder/1242/
Test FAILed.
Test FAILured.

Checks failed because there are some issues in ambari agent python side and ambari metrics, so it's not a problem in my changes. That's why i'm going to merge my changes.


Bgcolor with transparent alpha value has strange behavior

Pts behaves strangely when the bgcolor is transparent. The canvas slowly darkens and visual artifacts appear.
This can be demonstrated with this simple demo.
pts_demo.zip

Hi @grant-wilson -- you can use "transparent" or false to set the bgcolor instead of an rgba value. Eg:
space.setup( {bgcolor: "transparent"} );

Alternatively, you can clear the canvas by calling space.clear("transparent") when needed.
I just realize the CanvasSpace's setup documentation was truncated so the parameters were hidden. I will fix it asap.
Thanks!

Hi @williamngan ,
Thank you for the quick reply.
You are right that using the color name "transparent" works great!
This is exactly what I needed.
However I would argue that the behavior seen when using an rgba value with an alpha less than ff is probably not intended.
You can see what happens by running the pts_demo.html file I attached.

Thanks @grant-wilson. I see what you mean now -- that's a good catch. I will try to fix it in the next release.
In the meantime, you can call space.clear( "transparent" ) and then draw a semi-transparent rect that fills the canvas as a temporary fix.

Not sure if should be separate issue, but it falls under same heading, so I thought it was worth mentioning here.
While "transparent" does work, using false for bgcolor does not seem to work. (Contradicts the documentation.)
pts_demo.zip

Thanks for report this @jperrett256 -- this looks like a regression and we will fix it in the next patch release!

Closing this issue now. Please reopen if there're still issues.


Add back cell_path support

Found a FIXME comment on line 120 of file crates/nu-command/src/conversions/into/int.rs

I think this has been fixed, let's close it.


Trustdomain value was ignored in ACL policy

Description
Trustdomain value was ignored in ACL policy
Issue reference
We strive to have all PR being opened based on an issue, where the problem or feature have been discussed prior to implementation.
Please reference the issue this PR will close: #[issue number]
Checklist
Please make sure you've  completed the relevant tasks for this PR, out of the following list:

[ ] Code compiles correctly
[ ] Created/updated tests
[ ] Unit tests passing
[ ] End-to-end tests passing
[ ] Extended the documentation / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]
[ ] Specification has been updated / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]
[ ] Provided sample for the feature / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]

Is this to be merged with the release-0.11 branch?

Is this to be merged with the release-0.11 branch?

Yes


Open source DirectX Shader Compiler

Just a heads up that Microsoft just released an open source DX shader compiler.
https://github.com/Microsoft/DirectXShaderCompiler
That may be of interest to this project :)

This is indeed of interest, thanks for sharing.
I've heard of that MS will open source its HLSL Compiler, but didn't found the project until yet.
The official MS compiler is of course more reliable, and using its IR to translate to another backend is also a good approach for cross-compiling shaders.
However, I think there are still good reasons for a direct High-Level-to-High-Level Translation approach.
One of this is to keep the entire program structure (also function and variable names), which makes maintaining the cross-compiled shader more convenient (i.e. GLSL or Metal SL).
Generting GLSL from an IR might generate some entire differently structured program.


Fix a libswoc build error on macOS

This change fixes a build failure on macOS by including <array> in swoc_ip.h.

The CentOS build failed due to a temporary issue. I'm using it to try to triage regression tests failures. Let me mark it as offline for now. After the rest of the tests run, we'll rerun the centos run and it should grab a new machine.

[approve ci centos]

I'll merge this in so that we can resolve this build issue quickly for those who need it, but @moonchen agreed to file this as well in libswoc to make sure we don't lose it from there.


Test Name is not displayed

I integrate mabl test with Github, everything is ok, except Test Name is not displayed
https://github.com/trangpmnguyen12/trangpmnguyen12.github.io/actions/runs/10040005822/job/27745140642

Hi @trangpmnguyen12!  Thanks for the report.  The issue was upstream in an API endpoint this action depends on and has been addressed.  Closing this ticker but feel free to re-open if you are still seeing the issue with new action executions.


avoid error if access results key is not found for erasures

Closes #2048
Code Changes

default to an empty list [] if, in the beginning of erasure request execution, no access result cache entry is found for the given collection

Steps to Confirm

See issue description steps to reproduce, and ensure that requests no longer error in this scenario, but instead go to COMPLETE
Also can confirm that the Event Details for the step associated with the disabled connector show all of its events with skipped status

Pre-Merge Checklist

[x] All CI Pipelines Succeeded
Documentation Updated:

[ ] documentation complete, or draft/outline provided (tag docs-team to complete/review on this branch)
[ ] documentation issue created (tag docs-team to complete issue separately)

[x] Issue Requirements are Met
[ ] Relevant Follow-Up Issues Created
[x] Update CHANGELOG.md

Description Of Changes
Passing in the empty list is effectively a no-op here, just a way to prevent an error. This is because the list doesn't actually get used, as the erasure request execution will not proceed because the connector is disabled.

integration test failure seems like a blip and unrelated to changes, so i'll go ahead and merge if that looks right to you @pattisdr ?

I agree @adamsachs this is likely unrelated and resolved by re-running!

CI is being stubborn with the integration tests. the tests are passing locally and there's no connection between the failure reported here and the changed code. Merging rather than fighting this more, i think we're good!


Feature: check and fix saga execution process problem

Saga is a distributed transaction processing mode used to ensure consistency in distributed systems.The state machine mode of saga implemented in seata java, it`s needs to be support in seata go.
Understand the execution process of the saga state machine, handle exceptions that affect the execution of the saga process, such as context timeout and error handle, and fix them.

There has been one history implementation, corresponding to the branch: feature/saga, but the details need to be completed. you can develop on this branch.

please assign to me


Boutaina_review.md

Create a simple PR and rename the file you created for docs as follow NAME_review.md.

Thank you @Boutainaelatbaoui


Wazuh dashboard workflow run fails when managing the base file

Description
Testing the release package generation script I have found an error building the Wazuh dashboard:
Run mv /home/runner/work/wazuh-dashboard/wazuh-dashboard/artifacts/target/opensearch-dashboards-2.13.0-linux-x64.tar.gz /home/runner/work/wazuh-dashboard/wazuh-dashboard/artifacts/target/wazuh-dashboard_4.9.0-00_x64_enhancement/wj6371-add-workflow-id.tar.gz
  mv /home/runner/work/wazuh-dashboard/wazuh-dashboard/artifacts/target/opensearch-dashboards-2.13.0-linux-x64.tar.gz /home/runner/work/wazuh-dashboard/wazuh-dashboard/artifacts/target/wazuh-dashboard_4.9.0-00_x64_enhancement/wj6371-add-workflow-id.tar.gz
  shell: /usr/bin/bash -e {0}
  env:
    NPM_CONFIG_USERCONFIG: /home/runner/work/_temp/.npmrc
    NODE_AUTH_TOKEN: XXXXX-XXXXX-XXXXX-XXXXX
    YARN_CACHE_LOCATION: /home/runner/.cache/yarn/v6
    VERSION: 2.13.0
    WZD_VERSION: 4.9.0
    WZD_REVISION: 00
    ARTIFACT_BUILD_NAME: wazuh-dashboard_4.9.0-00_x64_enhancement/wj6371-add-workflow-id.tar.gz
mv: cannot move '/home/runner/work/wazuh-dashboard/wazuh-dashboard/artifacts/target/opensearch-dashboards-2.13.0-linux-x64.tar.gz' to '/home/runner/work/wazuh-dashboard/wazuh-dashboard/artifacts/target/wazuh-dashboard_4.9.0-00_x64_enhancement/wj6371-add-workflow-id.tar.gz': No such file or directory
Error: Process completed with exit code 1.

https://github.com/wazuh/wazuh-dashboard/actions/runs/9117577629

I used the following parameters:
{'url': 'https://api.github.com/repos/wazuh/wazuh-dashboard/actions/workflows/build_wazuh_dashboard_with_plugins.yml/dispatches', 'headers': {'Authorization': 'token xxxxx', 'Accept': 'application/vnd.github.v3+json'}, 'payload': {'ref': 'enhancement/wj6371-add-workflow-id', 'inputs': {'is_stage': True, 'checksum': True, 'system': 'deb', 'revision': '1', 'architecture': 'amd64', 'reference_security_plugins': '4.9.0', 'reference_wazuh_plugins': '4.9.0'}}}`

Note that I used the revision parameter with value: 1, but the base file is being called as 00, I don't know if this is related or not, but we should review it
WZD_REVISION: 00
wazuh-dashboard_4.9.0-00_x64_enhancement/wj6371-add-workflow-id.tar.gz

Related

https://github.com/wazuh/wazuh-jenkins/issues/6371#issuecomment-2115914391

I think that the error is related to the branch name, as it contains a / and is used as part of the file name, it is possible that it causes some issues.
I renamed the branch just to do a test, replacing the / with a -

After removing the / from the branch name, the workflow worked as expected
https://github.com/wazuh/wazuh-dashboard/actions/runs/9127402181

I will now rename the branch to its original name


[R-247] Integrations: wandb and wandb tracer

todo

[ ] How to do Evaluation Driven Development with the wandb stack?
[ ] build out ragas.integration.wandb to make that easiest for users

From SyncLinear.com | R-247

notes from init call

wandb tables is good for visualising Testset Generation dataset
weave gives you primitives for tracing

Hey @jjmachan , can you describe this a little, I would like to take this up

hey @sky-2002 are you still looking to take it up? we can work with the wandb team for this one

Sure, please go ahead, i can contribute if anything is needed in the workflow, or if tasks are lined out.

@sky-2002 didn't quite get it but lets talk more on discord?


Move common metadata to top of JSON

Closes none.
Changes proposed in this pull request

Documentation that should be reviewed

Codecov Report
Attention: Patch coverage is 0% with 20 lines in your changes missing coverage. Please review.

Project coverage is 28.49%. Comparing base (c6ac851) to head (62814fe).

Files with missing lines
Patch %
Lines

qsiprep/utils/bids.py
0.00%
20 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #875      +/-   ##
==========================================
- Coverage   28.54%   28.49%   -0.05%
==========================================
  Files          68       68
  Lines       10145    10162      +17
  Branches     1143     1150       +7
==========================================
  Hits         2896     2896
- Misses       7147     7164      +17
  Partials      102      102

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


AtlasTmxMapLoader not working as documented

Issue details
The javadocs for AtlasTmxMapLoader states the following (trimmed a bit)

The atlas must have in it indexed regions named after the tilesets used in the map. The indexes shall be local to the tileset (not the global id).

But this is not the case, and when you do you get NPE if you have an object layer with stuff in it, or just a messed up map with the wrong tiles in the wrong places.
I feel, and I might be wrong on this, that you should be able to simply pack all your tilesets using the texturepacker indexed like stated above and point the map at it. It keeps the process simple for the end user and feels like different tools are working together. At a minimum the docs should be updated to reflect reality.
Reproduction steps/code

Create a tmx file with the atlas property at the map level as indicated, include at least two tilesheets (with just one the local ID and Global ID are the same)
Pack your tilesheets into an atlas using the libgdx texturepacker
Try to load the map
See NPE if you have an object layer with objects in it, or tiles in the wrong place

Version of LibGDX and/or relevant dependencies
libgdx version: 1.9.7
Stacktrace
// NPE with an object layer
java.lang.NullPointerException
	at com.badlogic.gdx.maps.tiled.objects.TiledMapTileMapObject.<init>(TiledMapTileMapObject.java:42)
	at com.badlogic.gdx.maps.tiled.BaseTmxMapLoader.loadObject(BaseTmxMapLoader.java:278)
	at com.badlogic.gdx.maps.tiled.BaseTmxMapLoader.loadObject(BaseTmxMapLoader.java:222)
	at com.badlogic.gdx.maps.tiled.BaseTmxMapLoader.loadObjectGroup(BaseTmxMapLoader.java:160)
	at com.badlogic.gdx.maps.tiled.AtlasTmxMapLoader.loadMap(AtlasTmxMapLoader.java:276)
	at com.badlogic.gdx.maps.tiled.AtlasTmxMapLoader.load(AtlasTmxMapLoader.java:160)
	at com.badlogic.gdx.maps.tiled.AtlasTmxMapLoader.load(AtlasTmxMapLoader.java:112)
	at com.ifgames.rabbots.levels.Level.loadTileMap(Level.java:291)
	at com.ifgames.rabbots.levels.Level.init(Level.java:136)
	at com.ifgames.rabbots.screens.DebugLevelMenu$1.clicked(DebugLevelMenu.java:48)
	at com.badlogic.gdx.scenes.scene2d.utils.ClickListener.touchUp(ClickListener.java:89)
	at com.badlogic.gdx.scenes.scene2d.InputListener.handle(InputListener.java:59)
	at com.badlogic.gdx.scenes.scene2d.Stage.touchUp(Stage.java:351)
	at com.badlogic.gdx.backends.lwjgl.LwjglInput.processEvents(LwjglInput.java:332)
	at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:217)
	at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:126)

Please select the affected platforms

[x] Android
[x] iOS (robovm)
[x] iOS (MOE)
[x] HTML/GWT
[x] Windows
[x] Linux
[x] MacOS

Further information
I found a post which demonstrates how to get around this issue and what is happening. The tldr is that the regions in the atlas actually do need to be related to the tile gid, sorta, it is tilegid - 1.
I took a swing at correcting this, but I had already created a script to work around this and it is unfortunately not as simple as tweaking a few lines in the AtlasTmxMapLoader.

I fixed a bug recently, maybe it is related ? https://github.com/libgdx/libgdx/pull/4975

@mgsx-dev Let me give that a shot (I think I have already but honestly don't know for sure)

Yep that fixes it, I would have sworn for some reason you didn't have access to the firstgid when it loaded the atlas regions, thanks!

Cool ! I just realized you had 2 issues : tileset indexing and object layers. For the object layers i think the problem is here : https://github.com/libgdx/libgdx/blob/master/gdx/src/com/badlogic/gdx/maps/tiled/AtlasTmxMapLoader.java#L261 it calls loadTileLayer instead of loadLayer (which support all layer types), maybe you could try.

The two issues were linked to the same underlying issue of the tileid not matching up. Now that they do it finds all of the objects as well so it doesn't throw an NPE.


#55 center the search results in page, and remove previously searched elements

[sp]=8

Add hover, pointer,

Add ID on click

Create div to display search results

Remove previously searched items in the page

Done