Error during simultaneous plugin execution
Problem
An internal user reported that when two scheduled plugins execute at the same time, one of the two experiences an error:
I have two different scheduled plugins accessing the same source database. One of them is an iceberg exporter, that runs every 5 minutes. The other is a downsampler than runs every 20 minutes. The downsampler runs fine with no errors. The iceberg exporter runs fine 3 times out of 4. When it runs at the same time as the downsampler plugin, it gets an error error:
generate_fields_string() missing 1 required positional argument: 'tags_list'.If the iceberg export plugin runs when the downsampler plugin is not running, I don't get an error. It seems that there is some race condition when the two plugins run at the same time.
I then changed the downsampler frequency to run every 10 minutes, and now the iceberg exporter runs without any problems but the downsampler gets an error
[ERROR] generate_fields_string() takes 2 positional arguments but 3 were given.[^1]
So, it appears that scheduled plugins fire at the same time can interfere.
Purpose of this issue
- [ ] Reproduce the above behaviour
- [ ] Investigate root cause
- [ ] See if we can fix it
[^1]: Internal Slack thread
See also: https://github.com/influxdata/influxdb3_plugins/issues/27
I upgraded to 3.4.1 and this problem (which had been reliably occurring in 3.3) no longer happens. Not sure if the root cause was fixed, or if the timing has changed causing the problem to go away, but I no longer see this in 3.4.1.
I tried upgrading the version to 3.4.1, but I still see this error, the error is observed both when creating triggers in one database and in different ones
@Aliaksei-Kharlap Do you still see this issue?
@peterbarnett03 Just tested with influxdb:3.5-enterprise and influxdb:3.6-enterprise, and the error still appears
I tried different plugin combinations: downsampler + data_replicator and got a similar error (parse_max_retries() takes 1 positional argument, but 2 were given), iceberg_replicator + basic_transformation (parse_fields() takes 2 positional arguments, but 3 were given). That is, the error occurs in different plugins that have a function with the same name and that accepts a different number of arguments