ActiveRecord::StatementInvalid SQLite3::CorruptException - but it's not!

I've been getting this strange error for some time now - chalked it up to me not adding correct arguments ( - but the thing is; on a "fresh" file this does not happen or at least I think so)
My development.sqlite works fine and the solid_queue too - as the log will tell you - when I throw it some work "manually", but somehow the SolidQueue::RecurringExecution Insert gets the wrong impression of the database...or I don't know
11:48:00 web.1  | [ActiveJob] [writer]   TRANSACTION (0.1ms)  begin transaction
11:48:00 web.1  | [ActiveJob] [writer]   SolidQueue::Job Create (12.5ms)  INSERT INTO "solid_queue_jobs" ("queue_name", "class_name", "arguments", "priority", "active_job_id", "scheduled_at", "finished_at", "concurrency_key", "created_at", "updated_at") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) RETURNING "id"  [["queue_name", "default"], ["class_name", "BackgroundManagerJob"], ["arguments", "{\"job_class\":\"BackgroundManagerJob\",\"job_id\":\"69bd0679-7599-4f98-96b5-8fe4e5709811\",\"provider_job_id\":null,\"queue_name\":\"default\",\"priority\":null,\"arguments\":[],\"executions\":0,\"exception_executions\":{},\"locale\":\"da\",\"timezone\":\"UTC\",\"enqueued_at\":\"2024-08-23T09:48:00.011104000Z\",\"scheduled_at\":\"2024-08-23T09:48:00.011040000Z\"}"], ["priority", 0], ["active_job_id", "69bd0679-7599-4f98-96b5-8fe4e5709811"], ["scheduled_at", "2024-08-23 09:48:00.011040"], ["finished_at", nil], ["concurrency_key", "[FILTERED]"], ["created_at", "2024-08-23 09:48:00.011582"], ["updated_at", "2024-08-23 09:48:00.011582"]]
11:48:00 web.1  | [ActiveJob] [writer]   TRANSACTION (0.0ms)  SAVEPOINT active_record_1
11:48:00 web.1  | [ActiveJob] [writer]   SolidQueue::Job Load (1.6ms)  SELECT "solid_queue_jobs".* FROM "solid_queue_jobs" WHERE "solid_queue_jobs"."id" = ? LIMIT ?  [["id", 3470], ["LIMIT", 1]]
11:48:00 web.1  | [ActiveJob] [writer]   SolidQueue::ReadyExecution Create (0.2ms)  INSERT INTO "solid_queue_ready_executions" ("job_id", "queue_name", "priority", "created_at") VALUES (?, ?, ?, ?) RETURNING "id"  [["job_id", 3470], ["queue_name", "default"], ["priority", 0], ["created_at", "2024-08-23 09:48:00.069136"]]
11:48:00 web.1  | [ActiveJob] [writer]   TRANSACTION (0.0ms)  RELEASE SAVEPOINT active_record_1
11:48:00 web.1  | [ActiveJob] Enqueued BackgroundManagerJob (Job ID: 69bd0679-7599-4f98-96b5-8fe4e5709811) to SolidQueue(default)
11:48:00 web.1  | [writer]   SolidQueue::RecurringExecution Insert (0.2ms)  INSERT INTO "solid_queue_recurring_executions" ("job_id","task_key","run_at","created_at") VALUES (3470, 'background_job_scheduler', '2024-08-23 09:48:00', STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW')) ON CONFLICT ("task_key","run_at") DO NOTHING RETURNING "id"
11:48:00 web.1  | [writer]   TRANSACTION (0.0ms)  rollback transaction
11:48:00 web.1  | SolidQueue-0.5.0 Error enqueuing recurring task (63.2ms)  task: "background_job_scheduler", at: "2024-08-23T09:48:00Z"
11:48:00 web.1  | SolidQueue-0.5.0 Error in thread (0.0ms)  error: "ActiveRecord::StatementInvalid SQLite3::CorruptException: database disk image is malformed"
11:48:27 web.1  | [writer]   TRANSACTION (0.2ms)  begin transaction
11:48:27 web.1  | [writer]   SolidQueue::Process Update (4.0ms)  UPDATE "solid_queue_processes" SET "last_heartbeat_at" = ? WHERE "solid_queue_processes"."id" = ?  [["last_heartbeat_at", "2024-08-23 09:48:27.028474"], ["id", 950]]
11:48:27 web.1  | [writer]   TRANSACTION (0.2ms)  commit transaction
11:48:27 web.1  | [writer]   TRANSACTION (0.1ms)  begin transaction
11:48:27 web.1  | [writer]   SolidQueue::Process Update (1.3ms)  UPDATE "solid_queue_processes" SET "last_heartbeat_at" = ? WHERE "solid_queue_processes"."id" = ?  [["last_heartbeat_at", "2024-08-23 09:48:27.082442"], ["id", 951]]
11:48:27 web.1  | [writer]   TRANSACTION (0.1ms)  commit transaction
11:48:27 web.1  | [writer]   TRANSACTION (0.1ms)  begin transaction
11:48:27 web.1  | [writer]   SolidQueue::Process Update (1.2ms)  UPDATE "solid_queue_processes" SET "last_heartbeat_at" = ? WHERE "solid_queue_processes"."id" = ?  [["last_heartbeat_at", "2024-08-23 09:48:27.092663"], ["id", 952]]
11:48:27 web.1  | [writer]   TRANSACTION (0.1ms)  commit transaction
11:48:38 web.1  | [writer]   SolidQueue::Job Load (0.2ms)  SELECT "solid_queue_jobs".* FROM "solid_queue_jobs" WHERE "solid_queue_jobs"."id" = ? LIMIT ?  [["id", 3470], ["LIMIT", 1]]
11:48:38 web.1  | [ActiveJob] [Noticed::EventJob] [2d6a800f-68eb-43c6-9429-dd692cfc7cf6] [writer]   CompletedEmployeeNotifier Load (0.0ms)  SELECT "noticed_events".* FROM "noticed_events" WHERE "noticed_events"."type" = ? AND "noticed_events"."id" = ? LIMIT ?  [["type", "CompletedEmployeeNotifier"], ["id", 17], ["LIMIT", 1]]
11:48:38 web.1  | [ActiveJob] [Noticed::EventJob] [2d6a800f-68eb-43c6-9429-dd692cfc7cf6] Performing Noticed::EventJob (Job ID: 2d6a800f-68eb-43c6-9429-dd692cfc7cf6) from SolidQueue(default) enqueued at 2024-08-23T09:48:38.057286000Z with arguments: #<GlobalID:0x00000001250fe058 @uri=#<URI::GID gid://mortimer/CompletedEmployeeNotifier/17>>
11:48:38 web.1  | [ActiveJob] [Noticed::EventJob] [2d6a800f-68eb-43c6-9429-dd692cfc7cf6] [writer]   Noticed::Notification Load (0.1ms)  SELECT "noticed_notifications".*  RETURNING "id"  [["queue_name", "default"], ["class_name", "DeliveryMethods::TurboStream"], ["arguments", "{\"job_class\":\"DeliveryMethods::TurboStream\",\"job_id\":\"a6c32ba2-8aab-4f4a-8cbd-239c84b53503\",\"provider_job_id\":null,\"queue_name\":\"default\",\"priority\":null,\"arguments\":[{\"_aj_serialized\":\"ActiveJob::Serializers::SymbolSerializer\",\"value\":\"turbo_stream\"},{\"_aj_globalid\":\"gid://mortimer/CompletedEmployeeNotifier::Notification/62\"}],\"executions\":0,\"exception_executions\":{},\"locale\":\"da\",\"timezone\":\"UTC\",\"enqueued_at\":\"2024-08-23T09:48:38.157600000Z\",\"scheduled_at\":\"2024-08-23T09:48:38.157479000Z\"}"], ["priority", 0], ["active_job_id", "a6c32ba2-8aab-4f4a-8cbd-239c84b53503"], ["scheduled_at", "2024-08-23 09:48:38.157479"], ["finished_at", nil], ["concurrency_key", "[FILTERED]"], ["created_at", "2024-08-23 09:48:38.157780"], ["updated_at", "2024-08-23 09:48:38.157780"]]
11:48:38 web.1  | [ActiveJob] [Noticed::EventJob] [2d6a800f-68eb-43c6-9429-dd692cfc7cf6] [writer]   TRANSACTION (0.0ms)  SAVEPOINT active_record_1
11:48:38 web.1  | [ActiveJob] [Noticed::EventJob] [2d6a800f-68eb-43c6-9429-dd692cfc7cf6] [writer]   SolidQueue::Job Load (3.5ms)  SELECT "solid_queue_jobs".* FROM "solid_queue_jobs" WHERE "solid_queue_jobs"."id" = ? LIMIT ?  [["id", 3471], ["LIMIT", 1]]
11:48:38 web.1  | [ActiveJob] [Noticed::EventJob] [2d6a800f-68eb-43c6-9429-dd692cfc7cf6] [writer]   SolidQueue::ReadyExecution Create (0.1ms)  INSERT INTO "solid_queue_ready_executions" ("job_id", "queue_name", "priority", "created_at") VALUES (?, ?, ?, ?)  RETURNING "id"  [["queue_name", "default"], ["class_name", "DeliveryMethods::TurboStream"], ["arguments", "{\"job_class\":\"DeliveryMethods::TurboStream\",\"job_id\":\"eeae769f-9a24-44ab-a791-bee0e1126060\",\"provider_job_id\":null,\"queue_name\":\"default\",\"priority\":null,\"arguments\":[{\"_aj_serialized\":\"ActiveJob::Serializers::SymbolSerializer\",\"value\":\"turbo_stream\"},{\"_aj_globalid\":\"gid://mortimer/CompletedEmployeeNotifier::Notification/63\"}],\"executions\":0,\"exception_executions\":{},\"locale\":\"da\",\"timezone\":\"UTC\",\"enqueued_at\":\"2024-08-23T09:48:38.168299000Z\",\"scheduled_at\":\"2024-08-23T09:48:38.168250000Z\"}"], ["priority", 0], ["active_job_id", "eeae769f-9a24-44ab-a791-bee0e1126060"], ["scheduled_at", "2024-08-23 09:48:38.168250"], ["finished_at", nil], ["concurrency_key", "[FILTERED]"], ["created_at", "2024-08-23 09:48:38.168454"], ["updated_at", "2024-08-23 09:48:38.168454"]]
11:48:38 web.1  | [ActiveJob] [Noticed::EventJob] [2d6a800f-68eb-43c6-9429-dd692cfc7cf6] [writer]   TRANSACTION (0.0ms)  SAVEPOINT active_record_1
11:48:38 web.1  | [ActiveJob] [Noticed::EventJob] [2d6a800f-68eb-43c6-9429-dd692cfc7cf6] [writer]   SolidQueue::Job Load (1.3ms)  SELECT "solid_queue_jobs".* FROM "solid_queue_jobs" WHERE "solid_queue_jobs"."id" = ? LIMIT ?  [["id", 3472], ["LIMIT", 1]]
11:48:38 web.1  | [ActiveJob] [Noticed::EventJob] [2d6a800f-68eb-43c6-9429-dd692cfc7cf6] [writer]   SolidQueue::ReadyExecution Create (0.1ms)  INSERT INTO "solid_queue_ready_executions" ("job_id", "queue_name", "priority", "created_at") VALUES (?, ?, ?, ?)  RETURNING "id"  [["queue_name", "default"], ["class_name", "DeliveryMethods::TurboStream"], ["arguments", "{\"job_class\":\"DeliveryMethods::TurboStream\",\"job_id\":\"0a39fcff-6acb-483a-bf15-954e8c0c2719\",\"provider_job_id\":null,\"queue_name\":\"default\",\"priority\":null,\"arguments\":[{\"_aj_serialized\":\"ActiveJob::Serializers::SymbolSerializer\",\"value\":\"turbo_stream\"},{\"_aj_globalid\":\"gid://mortimer/CompletedEmployeeNotifier::Notification/64\"}],\"executions\":0,\"exception_executions\":{},\"locale\":\"da\",\"timezone\":\"UTC\",\"enqueued_at\":\"2024-08-23T09:48:38.177364000Z\",\"scheduled_at\":\"2024-08-23T09:48:38.177290000Z\"}"], ["priority", 0], ["active_job_id", "0a39fcff-6acb-483a-bf15-954e8c0c2719"], ["scheduled_at", "2024-08-23 09:48:38.177290"], ["finished_at", nil], ["concurrency_key", "[FILTERED]"], ["created_at", "2024-08-23 09:48:38.177524"], ["updated_at", "2024-08-23 09:48:38.177524"]]
11:48:38 web.1  | [ActiveJob] [Noticed::EventJob] [2d6a800f-68eb-43c6-9429-dd692cfc7cf6] [writer]   TRANSACTION (0.0ms)  SAVEPOINT active_record_1
11:48:38 web.1  | [ActiveJob] [Noticed::EventJob] [2d6a800f-68eb-43c6-9429-dd692cfc7cf6] [writer]   SolidQueue::Job Load (1.1ms)  SELECT "solid_queue_jobs".* FROM "solid_queue_jobs" WHERE "solid_queue_jobs"."id" = ? LIMIT ?  [["id", 3473], ["LIMIT", 1]]
11:48:38 web.1  | [ActiveJob] [Noticed::EventJob] [2d6a800f-68eb-43c6-9429-dd692cfc7cf6] [writer]   SolidQueue::ReadyExecution Create (0.2ms)  INSERT INTO "solid_queue_ready_executions" ("job_id", "queue_name", "priority", "created_at") VALUES (?, ?, ?, ?)  RETURNING "id"  [["queue_name", "default"], ["class_name", "DeliveryMethods::TurboStream"], ["arguments", "{\"job_class\":\"DeliveryMethods::TurboStream\",\"job_id\":\"44cc48ac-6215-4437-b272-72261bde0fa2\",\"provider_job_id\":null,\"queue_name\":\"default\",\"priority\":null,\"arguments\":[{\"_aj_serialized\":\"ActiveJob::Serializers::SymbolSerializer\",\"value\":\"turbo_stream\"},{\"_aj_globalid\":\"gid://mortimer/CompletedEmployeeNotifier::Notification/65\"}],\"executions\":0,\"exception_executions\":{},\"locale\":\"da\",\"timezone\":\"UTC\",\"enqueued_at\":\"2024-08-23T09:48:38.187525000Z\",\"scheduled_at\":\"2024-08-23T09:48:38.187448000Z\"}"], ["priority", 0], ["active_job_id", "44cc48ac-6215-4437-b272-72261bde0fa2"], ["scheduled_at", "2024-08-23 09:48:38.187448"], ["finished_at", nil], ["concurrency_key", "[FILTERED]"], ["created_at", "2024-08-23 09:48:38.187735"], ["updated_at", "2024-08-23 09:48:38.187735"]]
11:48:38 web.1  | [ActiveJob] [Noticed::EventJob] [2d6a800f-68eb-43c6-9429-dd692cfc7cf6] [writer]   TRANSACTION (0.0ms)  SAVEPOINT active_record_1
11:48:38 web.1  | [ActiveJob] [Noticed::EventJob] [2d6a800f-68eb-43c6-9429-dd692cfc7cf6] [writer]   SolidQueue::Job Load (1.8ms)  SELECT "solid_queue_jobs".* FROM "solid_queue_jobs" WHERE "solid_queue_jobs"."id" = ? LIMIT ?  [["id", 3474], ["LIMIT", 1]]
11:48:38 web.1  | [ActiveJob] [Noticed::EventJob] [2d6a800f-68eb-43c6-9429-dd692cfc7cf6] [writer]   SolidQueue::ReadyExecution Create (0.1ms)  INSERT INTO "solid_queue_ready_executions" ("job_id", "queue_name", "priority", "created_at") VALUES (?, ?, ?, ?) RETURNING "id"  [["job_id", 3474], ["queue_name", "default"], ["priority", 0], ["created_at", "2024-08-23 09:48:38.194127"]]
11:48:38 web.1  | [ActiveJob] [Noticed::EventJob] [2d6a800f-68eb-43c6-9429-dd692cfc7cf6] [writer]   TRANSACTION (0.0ms)  RELEASE SAVEPOINT active_record_1
11:48:38 web.1  | [ActiveJob] [Noticed::EventJob] [2d6a800f-68eb-43c6-9429-dd692cfc7cf6] [writer]   TRANSACTION (0.1ms)  commit transaction
11:48:38 web.1  | [ActiveJob] [Noticed::EventJob] [2d6a800f-68eb-43c6-9429-dd692cfc7cf6] Enqueued DeliveryMethods::TurboStream (Job ID: 44cc48ac-6215-4437-b272-72261bde0fa2) to SolidQueue(default) with arguments: :turbo_stream, #<GlobalID:0x0000000104b9d228 @uri=#<URI::GID gid://mortimer/CompletedEmployeeNotifier::Notification/65>>
11:48:38 web.1  | [ActiveJob] [Noticed::EventJob] [2d6a800f-68eb-43c6-9429-dd692cfc7cf6] Performed Noticed::EventJob (Job ID: 2d6a800f-68eb-43c6-9429-dd692cfc7cf6) from SolidQueue(default) in 61.28ms
11:48:38 web.1  | [writer]   SolidQueue::Job Load (0.0ms)  SELECT "solid_queue_jobs".* FROM "solid_queue_jobs" WHERE "solid_queue_jobs"."id" = ? LIMIT ?  [["id", 3471], ["LIMIT", 1]]
11:48:38 web.1  | [writer]   TRANSACTION (0.0ms)  begin transaction
11:48:38 web.1  | [writer]   SolidQueue::Job Update (0.9ms)  UPDATE "solid_queue_jobs" SET "updated_at" = ?, "finished_at" = ?  FROM "solid_queue_recurring_tasks" WHERE "solid_queue_recurring_tasks"."key" = ?  [["key", "background_job_scheduler"]]
12:13:39 web.1  | SolidQueue-0.5.0 Started Dispatcher (31.2ms)  pid: 71480, hostname: "Walthers-MBAir-2.local", process_id: 955, polling_interval: 1, batch_size: 500, concurrency_maintenance_interval: 600, recurring_schedule: ["background_job_scheduler"]
12:13:39 web.1  | [writer]   SolidQueue::Semaphore Ids (0.4ms)  SELECT "solid_queue_semaphores"."id" FROM "solid_queue_semaphores" WHERE "solid_queue_semaphores"."expires_at" < ? ORDER BY "solid_queue_semaphores"."id" ASC LIMIT ?  [["expires_at", "2024-08-23 10:13:39.209446"], ["LIMIT", 500]]
12:13:39 web.1  | [writer]   SolidQueue::BlockedExecution Pluck (0.3ms)  SELECT DISTINCT "solid_queue_blocked_executions"."concurrency_key" FROM "solid_queue_blocked_executions" WHERE "solid_queue_blocked_executions"."expires_at" < ? LIMIT ?  [["expires_at", "2024-08-23 10:13:39.223082"], ["LIMIT", 500]]
12:13:39 web.1  | SolidQueue-0.5.0 Unblock jobs (4.5ms)  limit: 500, size: 0
12:13:39 css.1  |
12:13:39 css.1  | Rebuilding...
12:13:40 css.1  |
12:13:40 css.1  | Done in 576ms.
12:14:00 web.1  | [ActiveJob] [writer]   TRANSACTION (0.0ms)  begin transaction
12:14:00 web.1  | [ActiveJob] [writer]   SolidQueue::Job Create (0.2ms)  INSERT INTO "solid_queue_jobs" ("queue_name", "class_name", "arguments", "priority", "active_job_id", "scheduled_at", "finished_at", "concurrency_key", "created_at", "updated_at") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) RETURNING "id"  [["queue_name", "default"], ["class_name", "BackgroundManagerJob"], ["arguments", "{\"job_class\":\"BackgroundManagerJob\",\"job_id\":\"262fd23e-d1a6-4b73-8046-68788d7cb7f4\",\"provider_job_id\":null,\"queue_name\":\"default\",\"priority\":null,\"arguments\":[],\"executions\":0,\"exception_executions\":{},\"locale\":\"da\",\"timezone\":\"UTC\",\"enqueued_at\":\"2024-08-23T10:14:00.045481000Z\",\"scheduled_at\":\"2024-08-23T10:14:00.045366000Z\"}"], ["priority", 0], ["active_job_id", "262fd23e-d1a6-4b73-8046-68788d7cb7f4"], ["scheduled_at", "2024-08-23 10:14:00.045366"], ["finished_at", nil], ["concurrency_key", "[FILTERED]"], ["created_at", "2024-08-23 10:14:00.052114"], ["updated_at", "2024-08-23 10:14:00.052114"]]
12:14:00 web.1  | [ActiveJob] [writer]   TRANSACTION (0.0ms)  SAVEPOINT active_record_1
12:14:00 web.1  | [ActiveJob] [writer]   SolidQueue::Job Load (0.1ms)  SELECT "solid_queue_jobs".* FROM "solid_queue_jobs" WHERE "solid_queue_jobs"."id" = ? LIMIT ?  [["id", 3475], ["LIMIT", 1]]
12:14:00 web.1  | [ActiveJob] [writer]   SolidQueue::ReadyExecution Create (0.6ms)  INSERT INTO "solid_queue_ready_executions" ("job_id", "queue_name", "priority", "created_at") VALUES (?, ?, ?, ?)  FROM "solid_queue_jobs" WHERE "solid_queue_jobs"."id" = ? LIMIT ?  [["id", 3475], ["LIMIT", 1]]
12:14:00 web.1  | [ActiveJob] [BackgroundManagerJob] [262fd23e-d1a6-4b73-8046-68788d7cb7f4] Performing BackgroundManagerJob (Job ID: 262fd23e-d1a6-4b73-8046-68788d7cb7f4) from SolidQueue(default) enqueued at 2024-08-23T10:14:00.045481000Z
12:14:00 web.1  | [ActiveJob] [BackgroundManagerJob] [262fd23e-d1a6-4b73-8046-68788d7cb7f4] Performed BackgroundManagerJob (Job ID: 262fd23e-d1a6-4b73-8046-68788d7cb7f4) from SolidQueue(default) in 0.56ms
12:14:00 web.1  | [writer]   TRANSACTION (0.0ms)  begin transaction
12:14:00 web.1  | [writer]   SolidQueue::Job Update (0.6ms)  UPDATE "solid_queue_jobs" SET "updated_at" = ?, "finished_at" = ? WHERE "solid_queue_jobs"."id" = ?  [["updated_at", "2024-08-23 10:14:00.166630"], ["finished_at", "2024-08-23 10:14:00.166630"], ["id", 3475]]
12:14:00 web.1  | [writer]   SolidQueue::ClaimedExecution Destroy (0.0ms)  DELETE FROM "solid_queue_claimed_executions" WHERE "solid_queue_claimed_executions"."id" = ?  [["id", 3653]]
12:14:00 web.1  | [writer]   TRANSACTION (0.1ms)  commit transaction

Telling me all is good and well 😄

Huh, this one is so strange, I had never seen it before. When you said:

when I throw it some work "manually", but somehow the SolidQueue::RecurringExecution Insert gets the wrong impression of the database...or I don't know

Do you mean when you enqueue jobs manually? And it breaks when jobs are enqueued because of your app running?

I think it’s strange too - I mean when I start it fresh all is good - and even when the errors from the recurring job defined in the solid_queue.yml start showing up I can still enqueue jobs manually, so I don’t know what really happens but the recurring jobs obviously stop working Med venlig hilsenWaltherDen 24. aug. 2024 kl. 14.14 skrev Rosa Gutierrez @.***>:
Huh, this one is so strange, I had never seen it before. When you said:
when I throw it some work "manually", but somehow the SolidQueue::RecurringExecution Insert gets the wrong impression of the database...or I don't know
Do you mean when you enqueue jobs manually? And it breaks when jobs are enqueued because of your app running?
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you authored the thread.Message ID: @.***>

I'm not 100% sure - but close enough to risk closing this issue with a warning to anyone hitting this 'rabbit hole'
Do not let your dev run on localhost whilst 1) using any kind of backup/sync service like dropbox/one_drive/synology_drive/et al and 2) putting your localhost into sleep mode - or at least have this little "fixsqlite" readily at hand:
bin/fix.sql
.mode insert
.output dump_all.sql
.dump

# bin/fixsqlite
date=$(date +%d_%m_%Y)
cd ./storage
cp development.sqlite3 backup_development.sqlite3
mv development.sqlite3 corrupted_$date.sqlite3
touch dump_all.sql
rm -f dump_all.sql dump_all_notrans.sql
sqlite3 corrupted_$date.sqlite3 < ../bin/fix.sql
{ echo "PRAGMA synchronous = OFF ;"; cat dump_all.sql; } | grep -v -e TRANSACTION -e ROLLBACK -e COMMIT >dump_all_notrans.sql
sqlite3 development.sqlite3 ".read dump_all_notrans.sql"
sqlite3 development.sqlite3 "PRAGMA integrity_check;"
cd ..

@wdiechmann, may I ask whether you ran into this again and what your recurring task
background_job_scheduler

was doing?

no -  or rather I did but each time it's 99% sure that my dropbox or some other backup/sync thing was screwing up the file 'cause if I keep it fresh there is not a problem
as for the 'doing part':
sure - it's still some sandbox-y kind of stuff (eg the crude cron-ish thing will get swapped out for some real cron and what not), but the gist of it is that employees will setup events in a calendar to do some 'auto-punching' for them: as per EU regulation all workers are required to punch in/out - but danish work regulations are very tight as it is and most danish workers are in fact better protected than what the EU regulation proposes, so what we offer is a means to stay compliant, ie show digital trail of punching, with out the worker having to actually do it 😆
I know - it's humbug - but anyways, here's the config/solid_queue.yml
default: &default
  dispatchers:
    - polling_interval: 1
      batch_size: 500
      recurring_tasks:
        background_job_scheduler:
          interval: 60
          class: BackgroundManagerJob
          queue: default
          schedule: every minute
          enabled: true
  workers:
    - queues: "*"
      threads: 5
      processes: 1
      polling_interval: 0.1

development:
 <<: *default

test:
 <<: *default

production:
 <<: *default

and here is the BackgroundManagerJob class
class BackgroundManagerJob < ApplicationJob
  queue_as :default

  #
  # step 1 background jobs will be running 3 jobs
  #
  #   1: employee_state_job
  #   2: employee_eu_state_job
  #   3: employee_auto_punch_job
  #
  def perform
    dt = DateTime.current
    prepare_state_job if dt.hour == 5 and dt.min == 0
    prepare_eu_state_job if dt.hour == 5 and dt.min == 5
    prepare_auto_punch_job if dt.hour == 23 and dt.min == 50
    rescue => error
      UserMailer.error_report(error.to_s, "BackgroundManagerJob.perform").deliver_later
  end

  def prepare_state_job
    Account.all.each do |account|
      if account.employees.any?
        EmployeeStateJob.perform_later account: account
      end
    end
  end

  def prepare_eu_state_job
    Account.all.each do |account|
      if account.employees.any?
        EmployeeEuStateJob.perform_later account: account
      end
    end
  end

  def prepare_auto_punch_job
    Account.all.each do |account|
      if account.employees.any?
        EmployeeAutoPunchJob.perform_now account: account
      end
    end
    true
  end
end

and here is the EmployeeAutoPunchJob (the other two only pump emails out)
class EmployeeAutoPunchJob < ApplicationJob
  queue_as :default

  def perform(**args)
    super(**args)
    date=DateTime.current
    Employee.by_account.each do |employee|
      next if employee.did_punch(date)
      employee.punch_by_calendar(date)
    end
  end
end

and in case you're wondering what the super(**args) is doing - here is the ApplicationJob
class ApplicationJob < ActiveJob::Base
  include Alco::SqlStatements
  #
  # most jobs will need to know what account and user they are working with
  # - so jobs inheriting from this will call super(args)
  #
  def perform **args
    account = args[:account] || Account.find(args[:account_id]) rescue Account.first
    Current.account = account
  rescue => exception
    say exception
  end
  #
  # allow jobs to say what they need to say
  #
  def say(msg)
    Rails.logger.info { "----------------------------------------------------------------------" }
    Rails.logger.info { msg }
    Rails.logger.info { "----------------------------------------------------------------------" }
  end

  def switch_locale(locale = nil, &action)
    locale ||= (locale || I18n.default_locale)
    I18n.with_locale(locale, &action)
  end

  def user_time_zone(tz = nil, &block)
    timezone = tz || Current.user.time_zone || Current.account.time_zone rescue nil
    timezone.blank? ?
      Time.use_zone("Europe/Copenhagen", &block) :
      Time.use_zone(timezone, &block)
  end
end

and further, here is the SqlStatements
module Mortimer
  module Alco::SqlStatements
    #
    # returns an array of hashes representing the result (column => value)
    # or an ActiveRecord::Result object
    #
    def execute_statement(sql, return_hash = false)
      records = ActiveRecord::Base.connection.exec_query(sql)
      if return_hash
        records.entries
      else
        records
      end
    end
  end
end

and finally here is (part of) the Employee

    def did_punch(date)
      todays_punches(date: date).any?
    end

    def punch_by_calendar(date)
      all_calendars.each do |calendar|
        tz = calendar.time_zone
        calendar.events.each do |event|
          if event.occurs?({ from: date.beginning_of_week, to: date.end_of_week }, date, tz)
            from_at = DateTime.new date.year, date.month, date.day, event.from_time.hour, event.from_time.min, 0, tz
            to_at = DateTime.new date.year, date.month, date.day, event.to_time.hour, event.to_time.min, 0, tz
            reason = event.work_type
            ip = "calendar punch"
            PunchJob.new.punch_it!(self, reason, ip, from_at, to_at, event.comment)
          end
        end
      end
      Rails.env.local? ?
        PunchCardJob.perform_now(account: account, employee: self, date: date) :
        PunchCardJob.perform_later(account: account, employee: self, date: date)
      true
    rescue => error
      UserMailer.error_report(error.to_s, "Employee#punch_by_calendar").deliver_later
    end

Thank you so much for all the info, really appreciate it! 🙏 🙏

context
I did as told in /environments/development.rb

  # Highlight code that enqueued background job in logs.
  config.active_job.queue_adapter = :solid_queue
  config.solid_queue.connects_to = { database: { writing: :writer, reading: :reader } }
  config.active_job.enqueue_after_transaction_commit = :never

if I Ctrl-C the dev and start it again, here is what I get:
19:50:22 web.1  | SolidQueue-0.5.0 Register Worker (18.0ms)  pid: 23903, hostname: "Walthers-MBAir-2.local", process_id: 1279
19:50:22 web.1  | SolidQueue-0.5.0 Started Worker (19.8ms)  pid: 23903, hostname: "Walthers-MBAir-2.local", process_id: 1279, polling_interval: 0.1, queues: "*", thread_pool_size: 5
19:50:22 web.1  | [writer]   SolidQueue::RecurringTask Upsert (0.3ms)  INSERT INTO "solid_queue_recurring_tasks" ("key","schedule","command","class_name","arguments","queue_name","priority","static","description","created_at","updated_at") VALUES ('background_job_scheduler', 'every minute', NULL, 'BackgroundManagerJob', NULL, NULL, 0, 1, NULL, STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW'), STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW')) ON CONFLICT ("key") DO UPDATE SET updated_at=(CASE WHEN ("schedule" IS excluded."schedule" AND "command" IS excluded."command" AND "class_name" IS excluded."class_name" AND "arguments" IS excluded."arguments" AND "queue_name" IS excluded."queue_name" AND "priority" IS excluded."priority" AND "static" IS excluded."static" AND "description" IS excluded."description") THEN "solid_queue_recurring_tasks".updated_at ELSE STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW') END),"schedule"=excluded."schedule","command"=excluded."command","class_name"=excluded."class_name","arguments"=excluded."arguments","queue_name"=excluded."queue_name","priority"=excluded."priority","static"=excluded."static","description"=excluded."description" RETURNING "id"
19:50:22 web.1  | [writer]   SolidQueue::RecurringTask Load (0.1ms)  SELECT "solid_queue_recurring_tasks".* FROM "solid_queue_recurring_tasks" WHERE "solid_queue_recurring_tasks"."key" = ?  [["key", "background_job_scheduler"]]
19:50:22 web.1  | SolidQueue-0.5.0 Started Dispatcher (33.2ms)  pid: 23902, hostname: "Walthers-MBAir-2.local", process_id: 1278, polling_interval: 1, batch_size: 500, concurrency_maintenance_interval: 600, recurring_schedule: ["background_job_scheduler"]
19:50:22 web.1  | [writer]   SolidQueue::Semaphore Ids (0.1ms)  SELECT "solid_queue_semaphores"."id" FROM "solid_queue_semaphores" WHERE "solid_queue_semaphores"."expires_at" < ? ORDER BY "solid_queue_semaphores"."id" ASC LIMIT ?  [["expires_at", "2024-09-06 17:50:22.424597"], ["LIMIT", 500]]
19:50:22 web.1  | [writer]   SolidQueue::BlockedExecution Pluck (0.1ms)  SELECT DISTINCT "solid_queue_blocked_executions"."concurrency_key" FROM "solid_queue_blocked_executions" WHERE "solid_queue_blocked_executions"."expires_at" < ? LIMIT ?  [["expires_at", "2024-09-06 17:50:22.441959"], ["LIMIT", 500]]
19:50:22 web.1  | SolidQueue-0.5.0 Unblock jobs (4.7ms)  limit: 500, size: 0
19:50:22 web.1  | [writer]   SolidQueue::Job Load (0.1ms)  SELECT "solid_queue_jobs".* FROM "solid_queue_jobs" WHERE "solid_queue_jobs"."id" = ? LIMIT ?  [["id", 10629], ["LIMIT", 1]]
19:50:22 web.1  | [ActiveJob] [ActiveStorage::AnalyzeJob] [1dadecc0-732d-4b3a-a4b7-df9cd3747d41] [writer]   ActiveStorage::Blob Load (0.1ms)  SELECT "active_storage_blobs".* FROM "active_storage_blobs" WHERE "active_storage_blobs"."id" = ? LIMIT ?  [["id", 12], ["LIMIT", 1]]
19:50:22 web.1  | [ActiveJob] [ActiveStorage::AnalyzeJob] [1dadecc0-732d-4b3a-a4b7-df9cd3747d41] Performing ActiveStorage::AnalyzeJob (Job ID: 1dadecc0-732d-4b3a-a4b7-df9cd3747d41) from SolidQueue(default) enqueued at 2024-09-02T20:36:24.229809000Z with arguments: #<GlobalID:0x0000000107907998 @uri=#<URI::GID gid://mortimer/ActiveStorage::Blob/12>>
19:50:22 web.1  | objc[23903]: +[__NSCFConstantString initialize] may have been in progress in another thread when fork() was called.
19:50:22 web.1  | objc[23903]: +[__NSCFConstantString initialize] may have been in progress in another thread when fork() was called. We cannot safely call it or ignore it in the fork() child process. Crashing instead. Set a breakpoint on objc_initializeAfterForkError to debug.
19:50:23 css.1  |
19:50:23 css.1  | Rebuilding...
19:50:23 web.1  | SolidQueue-0.5.0 Replaced terminated Worker (1.2ms)  pid: 23903, status: "no exit status set", pid_from_status: 23903, signaled: true, stopsig: nil, termsig: 6, hostname: "Walthers-MBAir-2.local"
19:50:23 web.1  | [writer]   TRANSACTION (0.0ms)  begin transaction
19:50:23 web.1  | [writer]   SolidQueue::Process Create (3.8ms)  INSERT INTO "solid_queue_processes" ("kind", "last_heartbeat_at", "supervisor_id", "pid", "hostname", "metadata", "created_at") VALUES (?, ?, ?, ?, ?, ?, ?) RETURNING "id"  [["kind", "Worker"], ["last_heartbeat_at", "2024-09-06 17:50:23.406183"], ["supervisor_id", 1277], ["pid", 23916], ["hostname", "Walthers-MBAir-2.local"], ["metadata", "{\"polling_interval\":0.1,\"queues\":\"*\",\"thread_pool_size\":5}"], ["created_at", "2024-09-06 17:50:23.411862"]]
19:50:23 web.1  | [writer]   TRANSACTION (0.1ms)  commit transaction
19:50:23 web.1  | SolidQueue-0.5.0 Register Worker (13.9ms)  pid: 23916, hostname: "Walthers-MBAir-2.local", process_id: 1280
19:50:23 web.1  | SolidQueue-0.5.0 Started Worker (15.9ms)  pid: 23916, hostname: "Walthers-MBAir-2.local", process_id: 1280, polling_interval: 0.1, queues: "*", thread_pool_size: 5
19:50:23 css.1  |
19:50:23 css.1  | Done in 917ms.

(notice lines 12-13-ish where something goes awry - not sure what that is - but it looks like it recovers nicely [see below])
19:54:00 web.1  | [ActiveJob] [writer]   TRANSACTION (0.1ms)  begin transaction
19:54:00 web.1  | [ActiveJob] [writer]   SolidQueue::Job Create (20.1ms)  INSERT INTO "solid_queue_jobs" ("queue_name", "class_name", "arguments", "priority", "active_job_id", "scheduled_at", "finished_at", "concurrency_key", "created_at", "updated_at") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) RETURNING "id"  [["queue_name", "default"], ["class_name", "BackgroundManagerJob"], ["arguments", "{\"job_class\":\"BackgroundManagerJob\",\"job_id\":\"706b6806-f3f9-4401-925d-b0a6a5a10ebc\",\"provider_job_id\":null,\"queue_name\":\"default\",\"priority\":null,\"arguments\":[],\"executions\":0,\"exception_executions\":{},\"locale\":\"da\",\"timezone\":\"UTC\",\"enqueued_at\":\"2024-09-06T17:54:00.010912000Z\",\"scheduled_at\":\"2024-09-06T17:54:00.010758000Z\"}"], ["priority", 0], ["active_job_id", "706b6806-f3f9-4401-925d-b0a6a5a10ebc"], ["scheduled_at", "2024-09-06 17:54:00.010758"], ["finished_at", nil], ["concurrency_key", "[FILTERED]"], ["created_at", "2024-09-06 17:54:00.012647"], ["updated_at", "2024-09-06 17:54:00.012647"]]
19:54:00 web.1  | [ActiveJob] [writer]   TRANSACTION (0.0ms)  SAVEPOINT active_record_1
19:54:00 web.1  | [ActiveJob] [writer]   SolidQueue::Job Load (2.1ms)  SELECT "solid_queue_jobs".* FROM "solid_queue_jobs" WHERE "solid_queue_jobs"."id" = ? LIMIT ?  [["id", 11631], ["LIMIT", 1]]
19:54:00 web.1  | [ActiveJob] [writer]   SolidQueue::ReadyExecution Create (0.2ms)  INSERT INTO "solid_queue_ready_executions" ("job_id", "queue_name", "priority", "created_at") VALUES (?, ?, ?, ?) RETURNING "id"  [["job_id", 11631], ["queue_name", "default"], ["priority", 0], ["created_at", "2024-09-06 17:54:00.044171"]]
19:54:00 web.1  | [ActiveJob] [writer]   TRANSACTION (0.0ms)  RELEASE SAVEPOINT active_record_1
19:54:00 web.1  | [ActiveJob] Enqueued BackgroundManagerJob (Job ID: 706b6806-f3f9-4401-925d-b0a6a5a10ebc) to SolidQueue(default)
19:54:00 web.1  | [writer]   SolidQueue::RecurringExecution Insert (0.4ms)  INSERT INTO "solid_queue_recurring_executions" ("job_id","task_key","run_at","created_at") VALUES (11631, 'background_job_scheduler', '2024-09-06 17:54:00', STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW')) ON CONFLICT ("task_key","run_at") DO NOTHING RETURNING "id"
19:54:00 web.1  | [writer]   TRANSACTION (0.2ms)  commit transaction
19:54:00 web.1  | SolidQueue-0.5.0 Enqueued recurring task (41.2ms)  task: "background_job_scheduler", active_job_id: "706b6806-f3f9-4401-925d-b0a6a5a10ebc", at: "2024-09-06T17:54:00Z"
19:54:00 web.1  | [writer]   SolidQueue::Job Load (0.0ms)  SELECT "solid_queue_jobs".* FROM "solid_queue_jobs" WHERE "solid_queue_jobs"."id" = ? LIMIT ?  [["id", 11631], ["LIMIT", 1]]
19:54:00 web.1  | [ActiveJob] [BackgroundManagerJob] [706b6806-f3f9-4401-925d-b0a6a5a10ebc] Performing BackgroundManagerJob (Job ID: 706b6806-f3f9-4401-925d-b0a6a5a10ebc) from SolidQueue(default) enqueued at 2024-09-06T17:54:00.010912000Z
19:54:00 web.1  | [ActiveJob] [BackgroundManagerJob] [706b6806-f3f9-4401-925d-b0a6a5a10ebc] Performed BackgroundManagerJob (Job ID: 706b6806-f3f9-4401-925d-b0a6a5a10ebc) from SolidQueue(default) in 0.9ms
19:54:00 web.1  | [writer]   TRANSACTION (0.1ms)  begin transaction
19:54:00 web.1  | [writer]   SolidQueue::Job Update (0.9ms)  UPDATE "solid_queue_jobs" SET "updated_at" = ?, "finished_at" = ? WHERE "solid_queue_jobs"."id" = ?  [["updated_at", "2024-09-06 17:54:00.133159"], ["finished_at", "2024-09-06 17:54:00.133159"], ["id", 11631]]
19:54:00 web.1  | [writer]   SolidQueue::ClaimedExecution Destroy (0.0ms)  DELETE FROM "solid_queue_claimed_executions" WHERE "solid_queue_claimed_executions"."id" = ?  [["id", 11965]]
19:54:00 web.1  | [writer]   TRANSACTION (0.1ms)  commit transaction

Thank you so much for all the info, really appreciate it! 🙏 🙏

ohh @rosa it's me thanking you for all the hard work you put into this! Without open source we'd all still be fighting DLL hell on those pesky windoze machines with no remedies to aid 😄
keep up the wonderful work - and reach out if I can do anything / test anything plz!


v32.2.0

This pull request releases minor version v32.2.0

[ ] The purpose of this PR is explained in this or a referenced issue.
[ ] The PR does not update generated files.

These files are managed by the codegen framework at Azure/autorest.go.

[ ] The PR targets the latest branch.
[ ] Tests are included and/or updated for code changes.
[ ] Updates to CHANGELOG.md are included.
[ ] Apache v2 license headers are included in each file.

Can one of the admins verify this patch?

Small nit, I don't think the package needs to be duplicated in the CHANGELOG, did the tool do that?

Actually, I added it. I will remove it


Ping-Pong Error - Connection Close

Hello, I am using the stable version published. I coded it from the samples page. There is one server and one client. Both were coded with AMPHP. However, after receiving the server and client responses below, the connection ends.
I can't see the PING-PONG answers. I read that you handle it automatically.
However, the situation does not seem that way.
Client Response:
Connection closed abnormally while awaiting message; Code 1008 (POLICY_VIOLATION); Reason: "Exceeded unanswered PING limit
Server Response:
server.notice: Client initiated websocket close reporting error (code: 1008): Exceeded unanswered PING limit [] []

I'm not able to reproduce any issue with pings. Works as expected.
Could you provide some more details or the script(s) you are using.

@yunusberkayaksoy Perhaps your problem can be solved by changing the $queuedPingLimit parameter, by passing the Option object when creating the Handshake:
$options = Options::createClientDefault()->withQueuedPingLimit(10);  $handshake = new Handshake('ws://localhost:1337/broadcast', $options);  $connection = yield connect($handshake );

@yunusberkayaksoy
Try with the option withoutHeartbeat():
Options::createClientDefault()->withoutHeartbeat();


ec2 instance deploy task changes

@ericzumba removing unnecessary variable setting from project.ext and adding some basic tests

Cool! I hated those project.ext!
:+1:


[Snipe] guild only check

Adds a guild only check to [p]snipe and also changes the listener to use on_message_delete.

Thanks for the PR!


Comb through my repos.

Comb through my repos.
See the Tasks section of #14.

Salvage relevant info/content from the repos for this project.
Start to consolidate various repos. Specifically,

the random API ones that have been created to practice coding.
And the random framework and library ones that were created for the same purpose.

Start by looking at my GitHub account. And then move on to the various directories in the LearningDirectory repo.
Delete any repo, file, or directory that is no longer of any use.

And start to consolidate various repos. Specifically,

the random API ones that have been created to practice coding.
And the random framework and library ones that were created for the same purpose.

Start by looking at my GitHub account. And then move on to the various directories in the LearningDirectory repo.

If it is a to-do item, create an Issue and list it below in the Todo section. Note, #13 exists.
If it is something to be referenced later, add it to Digital Knowledge Base
And if it is more appropriate for LearningDirectory , add it there.
Todo

[ ] Populate this Todo section.
[ ] Make a list of all relevant repos. Add them below:

[ ] https://github.com/JamieBort/GoogleCalendarAPIPractice/
[ ] next repo

[ ] Systematically go through each of those repos. One by one and collect the code, links, notes, etc. that will be valuable this repo or in https://github.com/JamieBort/LearningDirectory/ or in https://github.com/JamieBort/Digital_Knowledge_Base/. Then delete them.
[ ] [next?]

All of my repos to consider:
{
  "data": {
    "user": {
      "repositories": {
        "edges": [
          {
            "node": {
              "name": "iBeer_Layout-Flexbox"
            }
          },
          {
            "node": {
              "name": "Bears"
            }
          },
          {
            "node": {
              "name": "Week1-WeeklyAssignment"
            }
          },
          {
            "node": {
              "name": "Portfolio-Website"
            }
          },
          {
            "node": {
              "name": "FormBuilder"
            }
          },
          {
            "node": {
              "name": "CustomerDatabase"
            }
          },
          {
            "node": {
              "name": "BlackjackHandCalculator"
            }
          },
          {
            "node": {
              "name": "GitHubDataVCard"
            }
          },
          {
            "node": {
              "name": "RecipeSearch"
            }
          },
          {
            "node": {
              "name": "Brick_Breaker_Mashup"
            }
          },
          {
            "node": {
              "name": "BuildATodoList"
            }
          },
          {
            "node": {
              "name": "CreateASiteWithALogin"
            }
          },
          {
            "node": {
              "name": "express-lecture-1"
            }
          },
          {
            "node": {
              "name": "week3Calculator"
            }
          },
          {
            "node": {
              "name": "GitHubDataVCardWithFetch"
            }
          },
          {
            "node": {
              "name": "Week4iTunesMusicSearch"
            }
          },
          {
            "node": {
              "name": "Create-A-User-Directory"
            }
          },
          {
            "node": {
              "name": "BuildAGameWithNodeAndExpress"
            }
          },
          {
            "node": {
              "name": "ReturnToRobots"
            }
          },
          {
            "node": {
              "name": "CodeSnippetOrganizer"
            }
          },
          {
            "node": {
              "name": "BillMurrayTime"
            }
          },
          {
            "node": {
              "name": "PuppyLove"
            }
          },
          {
            "node": {
              "name": "iPhysicist-CSSLayoutFlexbox"
            }
          },
          {
            "node": {
              "name": "GitHubPractice"
            }
          },
          {
            "node": {
              "name": "ResponsiveNavigation"
            }
          },
          {
            "node": {
              "name": "CodeForDurhamAffordableHousingDataSet"
            }
          },
          {
            "node": {
              "name": "CodeChallenges"
            }
          },
          {
            "node": {
              "name": "Talks_Presentations_Workshops_and_Resources"
            }
          },
          {
            "node": {
              "name": "LearningDirectory"
            }
          },
          {
            "node": {
              "name": "Personal-Dashboard"
            }
          },
          {
            "node": {
              "name": "Resources"
            }
          },
          {
            "node": {
              "name": "TestPrivateRepo"
            }
          },
          {
            "node": {
              "name": "DotENVPractice"
            }
          },
          {
            "node": {
              "name": "TrelloHeatMap"
            }
          },
          {
            "node": {
              "name": "GoogleCalendarAPIPractice"
            }
          },
          {
            "node": {
              "name": "TrelloAPI"
            }
          },
          {
            "node": {
              "name": "MaxxPotentialCareerLab"
            }
          },
          {
            "node": {
              "name": "GmailAPIPractice"
            }
          },
          {
            "node": {
              "name": "JamieBort"
            }
          },
          {
            "node": {
              "name": "ReactJavaFrontBack"
            }
          },
          {
            "node": {
              "name": "DummyRepoPublicNameChange"
            }
          },
          {
            "node": {
              "name": "DummyRepoPrivate"
            }
          },
          {
            "node": {
              "name": "GoogleMap"
            }
          },
          {
            "node": {
              "name": "tempMapSearch"
            }
          },
          {
            "node": {
              "name": "EastSideRunClub"
            }
          },
          {
            "node": {
              "name": "CNYSilentBookClub"
            }
          },
          {
            "node": {
              "name": "CodeTheDream"
            }
          },
          {
            "node": {
              "name": "rockpaperscissors"
            }
          },
          {
            "node": {
              "name": "JamieBortPersonal"
            }
          },
          {
            "node": {
              "name": "personal_dashboard_backend_heroku"
            }
          },
          {
            "node": {
              "name": "intro-to-programming"
            }
          },
          {
            "node": {
              "name": "R6-rest-rails"
            }
          },
          {
            "node": {
              "name": "R6-blog"
            }
          },
          {
            "node": {
              "name": "to-do-list-videoWork"
            }
          },
          {
            "node": {
              "name": "Espanol-ingles-leyendo-hora"
            }
          },
          {
            "node": {
              "name": "to-do-list-classwork"
            }
          },
          {
            "node": {
              "name": "Kanban-Board"
            }
          },
          {
            "node": {
              "name": "weight-lifting-app"
            }
          },
          {
            "node": {
              "name": "cgm-remote-monitor"
            }
          },
          {
            "node": {
              "name": "03-task-manager-with-React-front-end"
            }
          },
          {
            "node": {
              "name": "API-Playground"
            }
          },
          {
            "node": {
              "name": "react-gh-pages-tutorial"
            }
          },
          {
            "node": {
              "name": "routed-react-app-gh-pages"
            }
          },
          {
            "node": {
              "name": "GitHub-Actions-Learning-repo"
            }
          },
          {
            "node": {
              "name": "Data-Logging-App"
            }
          },
          {
            "node": {
              "name": "To-Do-App"
            }
          },
          {
            "node": {
              "name": "self-care-survey-form"
            }
          },
          {
            "node": {
              "name": "Awesome-Profile-README-templates"
            }
          },
          {
            "node": {
              "name": "Digital_Knowledge_Base"
            }
          }
        ]
      }
    }
  }
}

All of my repos to consider:
const array_of_repo_names = [
  "iBeer_Layout-Flexbox",
  "Bears",
  "Week1-WeeklyAssignment",
  "Portfolio-Website",
  "FormBuilder",
  "CustomerDatabase",
  "BlackjackHandCalculator",
  "GitHubDataVCard",
  "RecipeSearch",
  "Brick_Breaker_Mashup",
  "BuildATodoList",
  "CreateASiteWithALogin",
  "express-lecture-1",
  "week3Calculator",
  "GitHubDataVCardWithFetch",
  "Week4iTunesMusicSearch",
  "Create-A-User-Directory",
  "BuildAGameWithNodeAndExpress",
  "ReturnToRobots",
  "CodeSnippetOrganizer",
  "BillMurrayTime",
  "PuppyLove",
  "iPhysicist-CSSLayoutFlexbox",
  "GitHubPractice",
  "ResponsiveNavigation",
  "CodeForDurhamAffordableHousingDataSet",
  "CodeChallenges",
  "Talks_Presentations_Workshops_and_Resources",
  "LearningDirectory",
  "Personal-Dashboard",
  "Resources",
  "TestPrivateRepo",
  "DotENVPractice",
  "TrelloHeatMap",
  "GoogleCalendarAPIPractice",
  "TrelloAPI",
  "MaxxPotentialCareerLab",
  "GmailAPIPractice",
  "JamieBort",
  "ReactJavaFrontBack",
  "DummyRepoPublicNameChange",
  "DummyRepoPrivate",
  "GoogleMap",
  "tempMapSearch",
  "EastSideRunClub",
  "CNYSilentBookClub",
  "CodeTheDream",
  "rockpaperscissors",
  "JamieBortPersonal",
  "personal_dashboard_backend_heroku",
  "intro-to-programming",
  "R6-rest-rails",
  "R6-blog",
  "to-do-list-videoWork",
  "Espanol-ingles-leyendo-hora",
  "to-do-list-classwork",
  "Kanban-Board",
  "weight-lifting-app",
  "cgm-remote-monitor",
  "03-task-manager-with-React-front-end",
  "API-Playground",
  "react-gh-pages-tutorial",
  "routed-react-app-gh-pages",
  "GitHub-Actions-Learning-repo",
  "Data-Logging-App",
  "To-Do-App",
  "self-care-survey-form",
  "Awesome-Profile-README-templates",
  "Digital_Knowledge_Base",
];

Created the .//administrative/gitHub_repos_to_comb_though directory.   Length: 15.
[
  {
    name: "Portfolio-Website",
    status: { fate: 1, info: 3, note: "Maybe has info to use." },
  },
  {
    name: "CreateASiteWithALogin",
    status: {
      fate: 1,
      info: 3,
      note: "Keep at least until I have my own login successfully working.",
    },
  },
  {
    name: "CodeChallenges",
    status: {
      fate: 1,
      info: 2,
      note: "Added to the 'The Short List of repos to clean up': https://trello.com/c/NnqWRZIE/158-clean-up-github-repositories-and-gists#comment-65d920475c427a9a15820ea5",
    },
  },
  {
    name: "Talks_Presentations_Workshops_and_Resources",
    status: {
      fate: 1,
      info: 2,
      note: "Added to the 'The Short List of repos to clean up': https://trello.com/c/NnqWRZIE/158-clean-up-github-repositories-and-gists#comment-65d920475c427a9a15820ea5",
    },
  },
  {
    name: "LearningDirectory",
    status: { fate: 1, info: 3, note: "Maybe has info to use." },
  },
  {
    name: "Personal-Dashboard",
    status: {
      fate: 1,
      info: 2,
      note: "I am performing this exercise for this repo...",
    },
  },
  { name: "JamieBort", status: { fate: 1, info: 2, note: "" } },
  { name: "CodeTheDream", status: { fate: 1, info: 2, note: "" } },
  {
    name: "JamieBortPersonal",
    status: {
      fate: 3,
      info: 2,
      note: "Keep this one for now. Consider deleting it at a later date.",
    },
  },
  {
    name: "Kanban-Board",
    status: {
      fate: 1,
      info: 2,
      note: "Added to the 'The Short List of repos to clean up': https://trello.com/c/NnqWRZIE/158-clean-up-github-repositories-and-gists#comment-65d920475c427a9a15820ea5",
    },
  },
  {
    name: "weight-lifting-app",
    status: { fate: 1, info: 2, note: "" },
  },
  {
    name: "cgm-remote-monitor",
    status: {
      fate: 1,
      info: 3,
      note: "Definitely keep this one. Need to take a closer look to see if it has anything that I can use...",
    },
  },
  { name: "Data-Logging-App", status: { fate: 1, info: 2, note: "" } },
  { name: "To-Do-App", status: { fate: 1, info: 2, note: "" } },
  {
    name: "Digital_Knowledge_Base",
    status: {
      fate: 1,
      info: 2,
      note: "Added to the 'The Short List of repos to clean up': https://trello.com/c/NnqWRZIE/158-clean-up-github-repositories-and-gists#comment-65d920475c427a9a15820ea5",
    },
  },
];

=====================
THESE REPOS HAVE BEEN DELETED. Length: 30.
[
  {
    name: "FormBuilder",
    status: {
      fate: 3,
      info: 3,
      note: "IT IS DELETED. Added it to the The-Iron-Yard-Projects repo.",
    },
  },
  {
    name: "CustomerDatabase",
    status: {
      fate: 3,
      info: 3,
      note: "IT IS DELETED. Added it to the The-Iron-Yard-Projects repo.",
    },
  },
  {
    name: "GitHubPractice",
    status: { fate: 2, info: 2, note: "IT IS DELETED." },
  },
  {
    name: "CodeForDurhamAffordableHousingDataSet",
    status: {
      fate: 2,
      info: 2,
      note: "IT IS DELETED. Added the markdown to this https://trello.com/c/TtMFVnGC/1330-coding-catchall#comment-65d93981777c1b000956d18b Trello card.",
    },
  },
  {
    name: "Resources",
    status: { fate: 2, info: 2, note: "IT IS DELETED." },
  },
  {
    name: "TestPrivateRepo",
    status: { fate: 2, info: 2, note: "IT IS DELETED. " },
  },
  {
    name: "DotENVPractice",
    status: {
      fate: 2,
      info: 2,
      note: "IT IS DELETED. Salvaged. First salvage the instructions in the markdown file.",
    },
  },
  {
    name: "TrelloHeatMap",
    status: { fate: 2, info: 2, note: "IT IS DELETED." },
  },
  {
    name: "GoogleCalendarAPIPractice",
    status: { fate: 2, info: 1, note: "IT IS DELETED." },
  },
  {
    name: "TrelloAPI",
    status: { fate: 2, info: 1, note: "IT IS DELETED." },
  },
  {
    name: "GmailAPIPractice",
    status: { fate: 2, info: 1, note: "IT IS DELETED." },
  },
  {
    name: "ReactJavaFrontBack",
    status: { fate: 3, info: 3, note: "IT IS DELETED." },
  },
  {
    name: "DummyRepoPublicNameChange",
    status: { fate: 3, info: 2, note: "IT IS DELETED." },
  },
  {
    name: "DummyRepoPrivate",
    status: { fate: 2, info: 2, note: "IT IS DELETED." },
  },
  {
    name: "GoogleMap",
    status: { fate: 2, info: 1, note: "IT IS DELETED." },
  },
  {
    name: "tempMapSearch",
    status: { fate: 3, info: 3, note: "IT IS DELETED." },
  },
  {
    name: "rockpaperscissors",
    status: { fate: 1, info: 2, note: "IT IS DELETED. Was forked." },
  },
  {
    name: "personal_dashboard_backend_heroku",
    status: { fate: 3, info: 3, note: "IT IS DELETED." },
  },
  {
    name: "intro-to-programming",
    status: { fate: 2, info: 2, note: "IT IS DELETED." },
  },
  {
    name: "R6-rest-rails",
    status: { fate: 2, info: 1, note: "IT IS DELETED." },
  },
  {
    name: "R6-blog",
    status: { fate: 2, info: 1, note: "IT IS DELETED." },
  },
  {
    name: "to-do-list-videoWork",
    status: { fate: 2, info: 2, note: "IT IS DELETED." },
  },
  {
    name: "to-do-list-classwork",
    status: { fate: 2, info: 2, note: "IT IS DELETED." },
  },
  {
    name: "03-task-manager-with-React-front-end",
    status: { fate: 2, info: 2, note: "IT IS DELETED." },
  },
  {
    name: "API-Playground",
    status: { fate: 2, info: 1, note: "IT IS DELETED." },
  },
  {
    name: "react-gh-pages-tutorial",
    status: { fate: 2, info: 1, note: "IT IS DELETED." },
  },
  {
    name: "routed-react-app-gh-pages",
    status: { fate: 2, info: 3, note: "IT IS DELETED." },
  },
  {
    name: "GitHub-Actions-Learning-repo",
    status: { fate: 3, info: 3, note: "IT IS DELETED." },
  },
  {
    name: "self-care-survey-form",
    status: { fate: 2, info: 2, note: "IT IS DELETED." },
  },
  {
    name: "Awesome-Profile-README-templates",
    status: {
      fate: 2,
      info: 2,
      note: "IT IS DELETED. MAKE note of it in LearningDirectory or in Digital_Knowledge_Base. Added to the https://trello.com/c/gZJQgnvv/360-update-github Trello card. No need to keep this.",
    },
  },
];

=====================
THESE REPOS HAVE BEEN CONSOLIDATED INTO OTHER REPOS. Length: 24.
[
  {
    name: "iBeer_Layout-Flexbox",
    status: {
      fate: 3,
      info: 3,
      note: "Need to check. 50/50 chance delete or fold into TheIronYard repo, the LearningDirectory repo, or something similar.",
    },
  },
  {
    name: "Bears",
    status: {
      fate: 3,
      info: 3,
      note: "Need to check. 50/50 chance delete or fold into TheIronYard repo, the LearningDirectory repo, or something similar.",
    },
  },
  {
    name: "Week1-WeeklyAssignment",
    status: {
      fate: 3,
      info: 3,
      note: "Need to check. 50/50 chance delete or fold into TheIronYard repo, the LearningDirectory repo, or something similar.",
    },
  },
  {
    name: "BlackjackHandCalculator",
    status: {
      fate: 3,
      info: 3,
      note: "Need to check. 50/50 chance delete or fold into TheIronYard repo, the LearningDirectory repo, or something similar.",
    },
  },
  {
    name: "GitHubDataVCard",
    status: {
      fate: 3,
      info: 3,
      note: "Need to check. 50/50 chance delete or fold into TheIronYard repo, the LearningDirectory repo, or something similar.",
    },
  },
  {
    name: "RecipeSearch",
    status: {
      fate: 3,
      info: 3,
      note: "Need to check. 50/50 chance delete or fold into TheIronYard repo, the LearningDirectory repo, or something similar.",
    },
  },
  {
    name: "Brick_Breaker_Mashup",
    status: {
      fate: 3,
      info: 3,
      note: "Need to check. 50/50 chance delete or fold into TheIronYard repo, the LearningDirectory repo, or something similar.",
    },
  },
  {
    name: "BuildATodoList",
    status: {
      fate: 3,
      info: 3,
      note: "Need to check. 50/50 chance delete or fold into TheIronYard repo, the LearningDirectory repo, or something similar.",
    },
  },
  {
    name: "express-lecture-1",
    status: {
      fate: 3,
      info: 3,
      note: "Need to check. 50/50 chance delete or fold into TheIronYard repo, the LearningDirectory repo, or something similar.",
    },
  },
  {
    name: "week3Calculator",
    status: {
      fate: 3,
      info: 3,
      note: "Need to check. 50/50 chance delete or fold into TheIronYard repo, the LearningDirectory repo, or something similar.",
    },
  },
  {
    name: "GitHubDataVCardWithFetch",
    status: {
      fate: 3,
      info: 3,
      note: "Need to check. 50/50 chance delete or fold into TheIronYard repo, the LearningDirectory repo, or something similar.",
    },
  },
  {
    name: "Week4iTunesMusicSearch",
    status: {
      fate: 3,
      info: 3,
      note: "Need to check. 50/50 chance delete or fold into TheIronYard repo, the LearningDirectory repo, or something similar.",
    },
  },
  {
    name: "Create-A-User-Directory",
    status: {
      fate: 3,
      info: 3,
      note: "Need to check. 50/50 chance delete or fold into TheIronYard repo, the LearningDirectory repo, or something similar.",
    },
  },
  {
    name: "BuildAGameWithNodeAndExpress",
    status: {
      fate: 3,
      info: 3,
      note: "Need to check. 50/50 chance delete or fold into TheIronYard repo, the LearningDirectory repo, or something similar.",
    },
  },
  {
    name: "ReturnToRobots",
    status: {
      fate: 3,
      info: 3,
      note: "Need to check. 50/50 chance delete or fold into TheIronYard repo, the LearningDirectory repo, or something similar.",
    },
  },
  {
    name: "CodeSnippetOrganizer",
    status: {
      fate: 3,
      info: 3,
      note: "Need to check. 50/50 chance delete or fold into TheIronYard repo, the LearningDirectory repo, or something similar.",
    },
  },
  {
    name: "BillMurrayTime",
    status: {
      fate: 3,
      info: 3,
      note: "Need to check. 50/50 chance delete or fold into TheIronYard repo, the LearningDirectory repo, or something similar.",
    },
  },
  {
    name: "PuppyLove",
    status: {
      fate: 3,
      info: 3,
      note: "Need to check. 50/50 chance delete or fold into TheIronYard repo, the LearningDirectory repo, or something similar.",
    },
  },
  {
    name: "iPhysicist-CSSLayoutFlexbox",
    status: {
      fate: 3,
      info: 3,
      note: "Need to check. 50/50 chance delete or fold into TheIronYard repo, the LearningDirectory repo, or something similar.",
    },
  },
  {
    name: "ResponsiveNavigation",
    status: {
      fate: 3,
      info: 3,
      note: "Need to check. 50/50 chance delete or fold into TheIronYard repo, the LearningDirectory repo, or something similar.",
    },
  },
  {
    name: "MaxxPotentialCareerLab",
    status: { fate: 3, info: 3, note: "Consolidated inside of another repo." },
  },
  {
    name: "EastSideRunClub",
    status: { fate: 1, info: 2, note: "Consolidated inside of another repo." },
  },
  {
    name: "CNYSilentBookClub",
    status: { fate: 1, info: 2, note: "Consolidated inside of another repo." },
  },
  {
    name: "Espanol-ingles-leyendo-hora",
    status: { fate: 1, info: 2, note: "Consolidated inside of another repo." },
  },
];

Done. Completed. See Results in the original issue above.


[🐛] Android build fail due to minSdkVersion conflict

Description
After install this package, I got build error on Android
Error: uses-sdk:minSdkVersion 16 cannot be smaller than version 21 declared in library [:react-native-image-picker]
Suggestion: use a compatible library with a minSdk of at most 16,
       or increase this project's minSdk version to at least 21,
       or use tools:overrideLibrary="com.imagepicker" to force usage (may lead to runtime failures)

Should I have to increase minSdkVersion to use this package?
How to repeat issue and example

install package
run react-native run-android

Solution
Additional Information

Image Picker version: 3.1.2
React Native version: 0.63.3
Platform: Android
Development Operating System: MacOS
Dev tools: Android SDK 29

i face the same issue any solution

@Hassanjankhan Currently the only solution I know is setting minSdkVersion to 21.
But this would drop support for users who uses SDK under 21.

android -> build.gradle
buildscript {
  ...
        minSdkVersion = 21
  ...
}

0.63.3 does not support SDK less than 21. So only we also upgraded.

So your only option is to upgrade.

android -> build.gradle
buildscript {
  ...
        minSdkVersion = 21
  ...
}

thanks for the info bro

Is this not part of master branch?

facing the same error on react native 0.74

C:\Freelance\Meetkor\android\app\src\debug\AndroidManifest.xml Error:
        uses-sdk:minSdkVersion 21 cannot be smaller than version 23 declared in library [com.facebook.react:react-android:0.74.1] C:\Users\acer\.gradle\caches\transforms-3\817bf4b774b7361c46230e491303d01c\transformed\jetified-react-android-0.74.1-debug\AndroidManifest.xml as the library might be using APIs not available in 21
        Suggestion: use a compatible library with a minSdk of at most 21,
                or increase this project's minSdk version to at least 23,
                or use tools:overrideLibrary="com.facebook.react" to force usage (may lead to runtime failures)

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:processDebugMainManifest'.
> Manifest merger failed : uses-sdk:minSdkVersion 21 cannot be smaller than version 23 declared in library [com.facebook.react:react-android:0.74.1] C:\Users\acer\.gradle\caches\transforms-3\817bf4b774b7361c46230e491303d01c\transformed\jetified-react-android-0.74.1-debug\AndroidManifest.xml as the library might be using APIs not available in 21
        Suggestion: use a compatible library with a minSdk of at most 21,
                or increase this project's minSdk version to at least 23,
                or use tools:overrideLibrary="com.facebook.react" to force usage (may lead to runtime failures)

facing the same error on react native 0.74

C:\Freelance\Meetkor\android\app\src\debug\AndroidManifest.xml Error:
        uses-sdk:minSdkVersion 21 cannot be smaller than version 23 declared in library [com.facebook.react:react-android:0.74.1] C:\Users\acer\.gradle\caches\transforms-3\817bf4b774b7361c46230e491303d01c\transformed\jetified-react-android-0.74.1-debug\AndroidManifest.xml as the library might be using APIs not available in 21
        Suggestion: use a compatible library with a minSdk of at most 21,
                or increase this project's minSdk version to at least 23,
                or use tools:overrideLibrary="com.facebook.react" to force usage (may lead to runtime failures)

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:processDebugMainManifest'.
> Manifest merger failed : uses-sdk:minSdkVersion 21 cannot be smaller than version 23 declared in library [com.facebook.react:react-android:0.74.1] C:\Users\acer\.gradle\caches\transforms-3\817bf4b774b7361c46230e491303d01c\transformed\jetified-react-android-0.74.1-debug\AndroidManifest.xml as the library might be using APIs not available in 21
        Suggestion: use a compatible library with a minSdk of at most 21,
                or increase this project's minSdk version to at least 23,
                or use tools:overrideLibrary="com.facebook.react" to force usage (may lead to runtime failures)

@AliYar-Khan
In your android/build.gradle folder just modify your minSDK to 23
buildscript {
  ...
        minSdkVersion = 23
  ...
}


critical failure mekanism

A critical failure will occur if a mekanism power cable is placed within receiving range of a powered extrautilities 2 wireless transmitter.
The failure will hard crash a client if in single player mode, or will hard stop a server (without a way to recover short of editing the chunk to remove the cable or restoring a backup).
attached is a crash log: https://pastebin.com/ukitLxS4
Mekanism-1.11.2-<IP_ADDRESS>5
Minecraft 1.11.2
side note it needs to have power going into it for it to crash.

I probably know what's happening. The wireless transmitter tries to send energy to all blocks in range who accepts energy. Mekanism fails to check on some points for a null facing (which is a valid value for a facing). A null facing is used in wireless situations like this.
Before this can be solved, the following question needs to be answered: for which blocks is it logical to receive wireless power.
My opinion, all blocks (machines) could receive power wireless. The cables shouldn't receive it wireless. If someone want to use cables, they probably won't use wireless to the same machine. And if wireless and cables are desired, use an energy cube as a transfer between wireless and cables.
There is however another side to it, some machines may want to draw power wireless, I think this shouldn't be possible for machines.

needs to be power going into it to crash

hopefully theres a way to fix it on your side RWTema takes forever to fix anything.

but its also been reported to him i was not sure what mod was the main one crashing

It's not something on the side of ex utils. It can only be fixed on the side of Mekanism.

.... Totally missed some issues last week..
It's already fixed for the next release #4411

cool

@IchigoGames It's fixed in commit 26061f35f73d9783803b8d630d17d8261f5388b9
Somehow I totally messed up the issue reference, should be #4395
note to self, do not link to other issues from mobile

i hate to use this to ask but i don't know any other way do you know when Mekanism will update on curse to fix this crash atm its the only mod i'm waiting on before i update my pack.

Updating/releasing is all up to @aidancbrady. I do not know when he releases an update. It would save some duplicate issues that will be made for sure in the couple next days

if its 1.10 there wont be. hes stated hes only supporting 1.11


BoulderFeatureConfig -> ForestRockFeatureConfig

It's only used for Feature.FOREST_ROCK (which comes from a registry name).

I think it was named like that because the registry name was boulder, but if it has changed it definitely needs to be changed

Yeah, this is how it's registered:


I can add businessKey attribute value to camunda:formData

As a user I would like to be able to model a process with generated start form and be able to specify businessKey for it.
Possible solution
in the properties panel add a drop down with list of current task Id's, value selected in the drop down should be written into businessKey attribute of camunda:formData tag.
Based on
https://app.camunda.com/jira/browse/SUPPORT-2543

We will also need a ticket in the bpmn-js-propertiespanel for this one

https://github.com/bpmn-io/bpmn-js-properties-panel/pull/203


Introduce ctx.console to provide logging utilities

Fix #187.
In this PR:

I introduce a new API to allow users to log https://github.com/restatedev/sdk-typescript/pull/233/files#diff-7e787088120fa1c15960700ab919f71b7e47e28f8652d8d4e68196122baa9a44R50. This console logger will skip logging on replay, and will format the text with a prefix containing the request context.
The prefix request context also includes the AWSRequestId, used to correlate logs in CloudWatch
Refactored a bit the internal logging, which now reuses this new log interface. Now the default log level is INVOKE, that will print only "Invoking function" and "Function completed"/"Function failed"

This is a sample output with RESTATE_DEBUG_LOGGING=OFF:
[restate] [2024-01-18T13:16:49.534Z] INFO: Listening on 9080...
[restate] [greeter/logger][nZ7YpdY6EikAY0ct5vCfa6bXwZZCc6sxw][2024-01-18T13:16:51.566Z] LOG:  HEEEELLLLOOOOO! Hello Pete! at the 30th time
[restate] [greeter/logger][WgTjvH6v2vkAY0ct5vCcE6XVnm_Y-8fMw][2024-01-18T13:16:51.627Z] LOG:  HEEEELLLLOOOOO! delayed Hello Pete! at the 30th time

(those log lines come from the example)
This is sample output with RESTATE_DEBUG_LOGGING=INVOKE:
[restate] [2024-01-18T13:18:07.478Z] INFO: Listening on 9080...
[restate] [greeter/greet][Xpt9SZI6-EYAY0cuMIweYu6AVBdKlP8qg][2024-01-18T13:18:07.687Z] DEBUG: Invoking function.
[restate] [counter/count][mgOR55f4niYAY0cuMVKfGaXzAZTDJDMQA][2024-01-18T13:18:07.704Z] DEBUG: Invoking function.
[restate] [counter/count][mgOR55f4niYAY0cuMVKfGaXzAZTDJDMQA][2024-01-18T13:18:07.706Z] DEBUG: Function completed successfully.
[restate] [greeter/greet][Xpt9SZI6-EYAY0cuMIweYu6AVBdKlP8qg][2024-01-18T13:18:07.750Z] DEBUG: Function completed successfully.
[restate] [greeter/logger][pf8TPYty3WMAY0cuMWHewq3wafCGye4mA][2024-01-18T13:18:07.795Z] DEBUG: Invoking function.
[restate] [greeter/logger][pf8TPYty3WMAY0cuMWHewq3wafCGye4mA][2024-01-18T13:18:07.795Z] LOG:  HEEEELLLLOOOOO! Hello Pete! at the 31th time
[restate] [greeter/logger][pf8TPYty3WMAY0cuMWHewq3wafCGye4mA][2024-01-18T13:18:07.796Z] DEBUG: Function completed successfully.
[restate] [greeter/logger][_NUHCUeoF1wAY0cuMWHfXGYFt-oxrw-Hg][2024-01-18T13:18:07.860Z] DEBUG: Invoking function.
[restate] [greeter/logger][_NUHCUeoF1wAY0cuMWHfXGYFt-oxrw-Hg][2024-01-18T13:18:07.860Z] LOG:  HEEEELLLLOOOOO! delayed Hello Pete! at the 31th time
[restate] [greeter/logger][_NUHCUeoF1wAY0cuMWHfXGYFt-oxrw-Hg][2024-01-18T13:18:07.860Z] DEBUG: Function completed successfully.

This is the sample output with RESTATE_DEBUG_LOGGING=JOURNAL:
[restate] [2024-01-18T13:18:44.998Z] INFO: Listening on 9080...
[restate] [greeter/greet][Hyxp3qilSPMAY0cuVaucBepjVnz-4Snng][2024-01-18T13:18:45.095Z] DEBUG: Invoking function.
[restate] [greeter/greet][Hyxp3qilSPMAY0cuVaucBepjVnz-4Snng][2024-01-18T13:18:45.099Z] DEBUG: Adding message to journal and sending to Restate ; InvokeEntryMessage
[restate] [greeter/greet][Hyxp3qilSPMAY0cuVaucBepjVnz-4Snng][2024-01-18T13:18:45.100Z] DEBUG: Scheduling suspension in 30000 ms
[restate] [counter/count][mgOR55f4niYAY0cuVdwcZmGyLi3zLWe6Q][2024-01-18T13:18:45.125Z] DEBUG: Invoking function.
[restate] [counter/count][mgOR55f4niYAY0cuVdwcZmGyLi3zLWe6Q][2024-01-18T13:18:45.126Z] DEBUG: Adding message to journal and sending to Restate ; GetStateEntryMessage
[restate] [counter/count][mgOR55f4niYAY0cuVdwcZmGyLi3zLWe6Q][2024-01-18T13:18:45.127Z] DEBUG: Adding message to journal and sending to Restate ; SetStateEntryMessage
[restate] [counter/count][mgOR55f4niYAY0cuVdwcZmGyLi3zLWe6Q][2024-01-18T13:18:45.130Z] DEBUG: Journaled and sent output message ; OutputStreamEntryMessage
[restate] [counter/count][mgOR55f4niYAY0cuVdwcZmGyLi3zLWe6Q][2024-01-18T13:18:45.130Z] DEBUG: Function completed successfully.
[restate] [greeter/greet][Hyxp3qilSPMAY0cuVaucBepjVnz-4Snng][2024-01-18T13:18:45.179Z] DEBUG: Received completion message from Restate, adding to journal. ; CompletionMessage
[restate] [greeter/greet][Hyxp3qilSPMAY0cuVaucBepjVnz-4Snng][2024-01-18T13:18:45.183Z] DEBUG: Adding message to journal and sending to Restate ; BackgroundInvokeEntryMessage
[restate] [greeter/greet][Hyxp3qilSPMAY0cuVaucBepjVnz-4Snng][2024-01-18T13:18:45.184Z] DEBUG: Adding message to journal and sending to Restate ; BackgroundInvokeEntryMessage
[restate] [greeter/greet][Hyxp3qilSPMAY0cuVaucBepjVnz-4Snng][2024-01-18T13:18:45.185Z] DEBUG: Journaled and sent output message ; OutputStreamEntryMessage
[restate] [greeter/greet][Hyxp3qilSPMAY0cuVaucBepjVnz-4Snng][2024-01-18T13:18:45.185Z] DEBUG: Function completed successfully.
[restate] [greeter/logger][L-sAQHC6hNUAY0cuVfDduG_27xzzoCYlg][2024-01-18T13:18:45.230Z] DEBUG: Invoking function.
[restate] [greeter/logger][L-sAQHC6hNUAY0cuVfDduG_27xzzoCYlg][2024-01-18T13:18:45.230Z] LOG:  HEEEELLLLOOOOO! Hello Pete! at the 32th time
[restate] [greeter/logger][L-sAQHC6hNUAY0cuVfDduG_27xzzoCYlg][2024-01-18T13:18:45.230Z] DEBUG: Journaled and sent output message ; OutputStreamEntryMessage
[restate] [greeter/logger][L-sAQHC6hNUAY0cuVfDduG_27xzzoCYlg][2024-01-18T13:18:45.230Z] DEBUG: Function completed successfully.
[restate] [greeter/logger][HdYwrvq8LMoAY0cuVfDdlawW9sTA4l9lw][2024-01-18T13:18:45.292Z] DEBUG: Invoking function.
[restate] [greeter/logger][HdYwrvq8LMoAY0cuVfDdlawW9sTA4l9lw][2024-01-18T13:18:45.292Z] LOG:  HEEEELLLLOOOOO! delayed Hello Pete! at the 32th time
[restate] [greeter/logger][HdYwrvq8LMoAY0cuVfDdlawW9sTA4l9lw][2024-01-18T13:18:45.292Z] DEBUG: Journaled and sent output message ; OutputStreamEntryMessage
[restate] [greeter/logger][HdYwrvq8LMoAY0cuVfDdlawW9sTA4l9lw][2024-01-18T13:18:45.292Z] DEBUG: Function completed successfully.

This is the sample output with RESTATE_DEBUG_LOGGING=JOURNAL_VERBOSE:
[restate] [2024-01-18T13:19:19.031Z] INFO: Listening on 9080...
[restate] [greeter/greet][eR_orTibcnYAY0cudt6dF6VNTkCdjXcSw][2024-01-18T13:19:19.102Z] DEBUG: Invoking function.
[restate] [greeter/greet][eR_orTibcnYAY0cudt6dF6VNTkCdjXcSw][2024-01-18T13:19:19.106Z] DEBUG: Adding message to journal and sending to Restate ; InvokeEntryMessage : {"serviceName":"counter","methodName":"count","parameter":{"type":"Buffer","data":[10,4,80,101,116,101,168,6,4]}}
[restate] [greeter/greet][eR_orTibcnYAY0cudt6dF6VNTkCdjXcSw][2024-01-18T13:19:19.107Z] DEBUG: Scheduling suspension in 30000 ms
[restate] [counter/count][mgOR55f4niYAY0cudxHdi6-8oo6zq4n_g][2024-01-18T13:19:19.132Z] DEBUG: Invoking function.
[restate] [counter/count][mgOR55f4niYAY0cudxHdi6-8oo6zq4n_g][2024-01-18T13:19:19.134Z] DEBUG: Adding message to journal and sending to Restate ; GetStateEntryMessage : {"key":{"type":"Buffer","data":[115,101,101,110]},"value":{"type":"Buffer","data":[51,50]}}
[restate] [counter/count][mgOR55f4niYAY0cudxHdi6-8oo6zq4n_g][2024-01-18T13:19:19.135Z] DEBUG: Adding message to journal and sending to Restate ; SetStateEntryMessage : {"key":{"type":"Buffer","data":[115,101,101,110]},"value":{"type":"Buffer","data":[51,51]}}
[restate] [counter/count][mgOR55f4niYAY0cudxHdi6-8oo6zq4n_g][2024-01-18T13:19:19.136Z] DEBUG: Journaled and sent output message ; OutputStreamEntryMessage : {"value":{"type":"Buffer","data":[10,9,17,0,0,0,0,0,0,64,64]}}
[restate] [counter/count][mgOR55f4niYAY0cudxHdi6-8oo6zq4n_g][2024-01-18T13:19:19.137Z] DEBUG: Function completed successfully.
[restate] [greeter/greet][eR_orTibcnYAY0cudt6dF6VNTkCdjXcSw][2024-01-18T13:19:19.184Z] DEBUG: Received completion message from Restate, adding to journal. ; CompletionMessage : {"entryIndex":1,"value":{"type":"Buffer","data":[10,9,17,0,0,0,0,0,0,64,64]}}
[restate] [greeter/greet][eR_orTibcnYAY0cudt6dF6VNTkCdjXcSw][2024-01-18T13:19:19.188Z] DEBUG: Adding message to journal and sending to Restate ; BackgroundInvokeEntryMessage : {"serviceName":"greeter","methodName":"logger","parameter":{"type":"Buffer","data":[10,28,72,101,108,108,111,32,80,101,116,101,33,32,97,116,32,116,104,101,32,51,51,116,104,32,116,105,109,101,168,6,4]},"invokeTime":0}
[restate] [greeter/greet][eR_orTibcnYAY0cudt6dF6VNTkCdjXcSw][2024-01-18T13:19:19.189Z] DEBUG: Adding message to journal and sending to Restate ; BackgroundInvokeEntryMessage : {"serviceName":"greeter","methodName":"logger","parameter":{"type":"Buffer","data":[10,36,100,101,108,97,121,101,100,32,72,101,108,108,111,32,80,101,116,101,33,32,97,116,32,116,104,101,32,51,51,116,104,32,116,105,109,101,168,6,4]},"invokeTime":1705583959289}
[restate] [greeter/greet][eR_orTibcnYAY0cudt6dF6VNTkCdjXcSw][2024-01-18T13:19:19.190Z] DEBUG: Journaled and sent output message ; OutputStreamEntryMessage : {"value":{"type":"Buffer","data":[10,30,26,28,72,101,108,108,111,32,80,101,116,101,33,32,97,116,32,116,104,101,32,51,51,116,104,32,116,105,109,101]}}
[restate] [greeter/greet][eR_orTibcnYAY0cudt6dF6VNTkCdjXcSw][2024-01-18T13:19:19.190Z] DEBUG: Function completed successfully.
[restate] [greeter/logger][uAMyavelSA8AY0cudyYcdKnGQaqXHQdoA][2024-01-18T13:19:19.235Z] DEBUG: Invoking function.
[restate] [greeter/logger][uAMyavelSA8AY0cudyYcdKnGQaqXHQdoA][2024-01-18T13:19:19.236Z] LOG:  HEEEELLLLOOOOO! Hello Pete! at the 33th time
[restate] [greeter/logger][uAMyavelSA8AY0cudyYcdKnGQaqXHQdoA][2024-01-18T13:19:19.236Z] DEBUG: Journaled and sent output message ; OutputStreamEntryMessage : {"value":{"type":"Buffer","data":[]}}
[restate] [greeter/logger][uAMyavelSA8AY0cudyYcdKnGQaqXHQdoA][2024-01-18T13:19:19.236Z] DEBUG: Function completed successfully.
[restate] [greeter/logger][xjnqqU9I6JwAY0cudyYcFi9KT5JiOis_g][2024-01-18T13:19:19.296Z] DEBUG: Invoking function.
[restate] [greeter/logger][xjnqqU9I6JwAY0cudyYcFi9KT5JiOis_g][2024-01-18T13:19:19.296Z] LOG:  HEEEELLLLOOOOO! delayed Hello Pete! at the 33th time
[restate] [greeter/logger][xjnqqU9I6JwAY0cudyYcFi9KT5JiOis_g][2024-01-18T13:19:19.296Z] DEBUG: Journaled and sent output message ; OutputStreamEntryMessage : {"value":{"type":"Buffer","data":[]}}
[restate] [greeter/logger][xjnqqU9I6JwAY0cudyYcFi9KT5JiOis_g][2024-01-18T13:19:19.296Z] DEBUG: Function completed successfully.

LGTM, Also works locally for me. :+1:
Unrelated to this PR: the JOURNAL_VERBOSE logging seems a bit pointless if most values are printed as buffers?

the JOURNAL_VERBOSE logging seems a bit pointless if most values are printed as buffers?

IMO it doesn't hurt to keep it around, perhaps it would be more useful if buffers are printed as hex or base64.

the JOURNAL_VERBOSE logging seems a bit pointless if most values are printed as buffers?

IMO it doesn't hurt to keep it around, perhaps it would be more useful if buffers are printed as hex or base64.

We should definitely keep it around, but maybe indeed print in a human-parseable format. I can create another issue for this.


Update upgrade instructions to explicitly delete cert generation job

Closes #67

Codecov Report

Merging #68 (a5298fb) into master (c1d5b9c) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #68   +/-   ##
=======================================
  Coverage   77.72%   77.72%
=======================================
  Files           8        8
  Lines         395      395
=======================================
  Hits          307      307
  Misses         60       60
  Partials       28       28

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update c1d5b9c...a5298fb. Read the comment docs.


Caffeine with Knative doesn't work

I have two integrations, one with knative and other without. In the second one, if I add caffeine cache, it's working fine, but in the first one, if I add it, the integration is not deployed, and finish with error... Do you know if there is some issue if I want to use camel-caffeine with knative?
Thanks.

To be able to understand and eventually reproduce, please add a reproducer on github so we can try.

Ok, this example is not working for me:
public class getTokenextends RouteBuilder {
@BindToRegistry
public static Cache<String, String> cache() {
return Caffeine.newBuilder()
.expireAfterWrite(10, TimeUnit.SECONDS)
.maximumSize(100)
.build();
}
@Override
public void configure() throws Exception {
from("knative:endpoint/get-token")
	.to("caffeine-cache://ejemplo?cache=#cache&action=GET&key=token")
	.log("Result of Action ${header.CamelCaffeineAction} with key ${header.CamelCaffeineKey} is: ${body}")

But this is working fine for me:
public class EjemploCache extends RouteBuilder {
@Override
public void configure() throws Exception {
from("timer:tick")
.setBody(constant("Hello"))
.setHeader("CamelCaffeineAction", constant("PUT"))
.setHeader("CamelCaffeineKey", constant("1"))
.toF("caffeine-cache://%s", "test")
.log("Result of Action ${header.CamelCaffeineAction} with key ${header.CamelCaffeineKey} is: ${body}")

For example, If I run this integration:
import org.apache.camel.builder.RouteBuilder;
public class EjemploCache extends RouteBuilder {
@Override
public void configure() throws Exception {
from("timer:tick")
.setBody(constant("Hello"))
.setHeader("CamelCaffeineAction", constant("PUT"))
.setHeader("CamelCaffeineKey", constant("1"))
.toF("caffeine-cache://%s", "test")
.log("Result of Action ${header.CamelCaffeineAction} with key ${header.CamelCaffeineKey} is: ${body}")
.setBody(constant(null))
.setHeader("CamelCaffeineAction", constant("GET"))
.setHeader("CamelCaffeineKey", constant("1"))
.toF("caffeine-cache://%s", "test")
.log("Result of Action ${header.CamelCaffeineAction} with key ${header.CamelCaffeineKey} is: ${body}")
.setBody(constant(null))
.setHeader("CamelCaffeineAction", constant("INVALIDATE"))
.setHeader("CamelCaffeineKey", constant("1"))
.log("Invalidating entry with key ${header.CamelCaffeineKey}")
.toF("caffeine-cache://%s", "test")
.setHeader("CamelCaffeineAction", constant("GET"))
.setHeader("CamelCaffeineKey", constant("1"))
.toF("caffeine-cache://%s", "test")
.log("The Action ${header.CamelCaffeineAction} with key ${header.CamelCaffeineKey} has result? ${header.CamelCaffeineActionHasResult}");
}
}
it's working fine. But If I try to run this:
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.BindToRegistry;
import com.github.benmanes.caffeine.cache.Cache;
import com.github.benmanes.caffeine.cache.Caffeine;
import java.util.concurrent.TimeUnit;
public class ConsumidorCambios extends RouteBuilder {
@Override
public void configure() throws Exception {
  // Write your routes here, for example:
  from("knative:endpoint/consumidor-cambios")
    .to("caffeine-cache://ejemplo?cache=#cache&action=PUT&key=token")
    .setBody().simple("Hola Mundo")
    .log("Before Read Cache! ${body}")
    .to("caffeine-cache://ejemplo?cache=#cache&action=GET&key=token") // Puedes añadir o no el parámetro cache pero claro primero debe estar vinculado, es decir haber echo una acción previamente
    .log("Test! ${body}")
    .setBody()
      .simple("Respuesta desde el endpoint de cambios ${date:now}")
    .to("log:info");

}
}
this is not deployed properly, and at the end I see the error:
integration deployment failed

I think you need to explicitly pass the caffeine dependency. Why did you close this?

I don't know why I closed this. I have this two examples, attached.
examples.zip
ConsumidorCambios.java is a integration with cache and knative, and when I try to deploy with my local minikube, it's not working fine. But, the second, EjemploCache.java, it's one integration with cache and timer, and it's deployed fine and works fine.
Is there any way to know why the first it's not working fine? where can I see the error?

Do you have knative running on minikube?

Do you have knative running on minikube?

I installed minikube, and I executed this related with knative:
./kubectl apply --filename https://github.com/knative/serving/releases/download/v0.14.2/serving-crds.yaml
./kubectl apply --filename https://github.com/knative/serving/releases/download/v0.14.2/serving-core.yaml
./kubectl apply --filename https://github.com/knative/eventing/releases/download/v0.14.2/eventing-crds.yaml
./kubectl apply --filename https://github.com/knative/eventing/releases/download/v0.14.2/eventing-core.yaml

Have a look at the camel-k example related to knative. I believe you're missing some bits.
https://github.com/apache/camel-k-examples

Have a look at the camel-k example related to knative. I believe you're missing some bits.
https://github.com/apache/camel-k-examples

But the only thing that I have no installed is the kamel commands, the rest are ok. And if I execute this:
./kubectl get integrationplatform
Tells me that camel-k is ready

Have a look at the camel-k example related to knative. I believe you're missing some bits.
https://github.com/apache/camel-k-examples

But the only thing that I have no installed is the kamel commands, the rest are ok. And if I execute this:
./kubectl get integrationplatform
Tells me that camel-k is ready

Other question, my laptop has 16 gb from RAM memory, it's one i5. Can be problem of memory?

In your example I don't see a files like this for example:
https://github.com/apache/camel-k-examples/blob/master/07-aws-sqs-source-basic/aws-sqs-source.yaml
https://github.com/apache/camel-k-examples/blob/master/07-aws-sqs-source-basic/aws-sqs-channel.yaml
https://github.com/apache/camel-k-examples/blob/master/07-aws-sqs-source-basic/aws-sqs-consumer.groovy
If you don't add the channel and source, knative won't work. Also I believe you're missing this file too.
kubectl apply --filename https://github.com/knative/eventing-contrib/releases/download/v0.14.2/camel.yaml

Without logs or information we cannot answer questions about memory.

Ok, I have seen my problem, I had in a different namespace knative and camel, and now it's working.
I have other question, if you can reply me... I want to create channels to communicate integrations itself, how can I create, because I create like Channel, and the status is unknown, must I to create like inMemoryChannel? Which is the right format?
Thanks

@pjcubero please open a new issue for the channel stuff (if it is still an issue)


API Recommender hangs

I'm looking through the tools and noticed the API recommender seems to be hung.

Just added a message for incompatible chains if you try to launch it.
In this specific instance, the producerjson contract needs to exist so it has a set of APIs to test against. Right now I believe it's just spinning because it has an empty list of APIs to test against!


Fix labels, to be consistent

https://deploy-preview-2108--privacytools-io.netlify.app/software/encryption-tools/

This is a good idea, but the preview doesn't seem to show the icons at the moment.

This is a good idea, but the preview doesn't seem to show the icons at the moment.

My mistake. Fixed.


Fix: Avoid exception ImageVariant could not be converted to string

Avoids an exception by removing the processor and do the conversion directly

Thanks @daniellienert for the contribution. I highly appreciate your feedback and experience. ❤

:tada: This PR is included in version 3.2.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Configurable Indent Levels?

before lobbing a PR over, I wanted to spin up a quick discussion around adding an option to black to permit smoother interop with 2-space indent code bases.
At Twitter, we would like to experiment with adopting black as autofmt tooling in a few of our open source projects and potentially more widely across our internal monorepo. Our python code style is currently defined as such:
Python code style at Twitter closely follows PEP-8 and PEP-257 with the following modifications:

- Indent using two spaces (instead of four).
- Break lines at 100 characters or less.

we have on the order of many millions of lines of code that currently adopt this style and generally feel like it's a net improvement over 4 space indent (nested blocks can fit more code per line, etc etc). pants and pex are good concrete examples of projects that started at Twitter and were later open sourced with a continuation of this python code style.
I realize black is intended to be opinionated and have little to no config - but to me, line length and indent level both seem like a fairly fundamental configurable for most shops, so I'd put this in a very similar category as the existing --line-length option:
-l, --line-length INTEGER   Where to wrap around.  [default: 88]

with that said, how would folks feel about adding a new --indent-level={2|4} flag to black to permit easier interop for code bases that take this fundamental stance? I would be happy to cut a PR that implements this as long as there's consensus that this would be reasonable.

Please consider dropping two-space indents. Black will not support this style.

k, thanks.

Thanks for your detailed comment. Note you are commenting on a closed issue. Your attempt to use --line-length= as a precedent for allowing two-space indents is understandable but I disagree with it.
Line length controls what happens on the right of the line, whereas a different indentation level would change what happens on the left of the line. The former affects some lines whereas the latter would affect all lines.
Two space indents are not distinct enough to be recommended by the Black coding style.

True. I'm also aware the issue is closed, but I wanted to make my point to see if it could be reopened and reconsidered. It won't make sense to open a new issue if the topic is going to be the same as this one.
Just for a final argument, consider the choice of 88 characters by default. It is an interesting choice made because:
"This number was found to produce significantly shorter files than sticking with 80 (the most popular), or even 79 (used by the standard library)."
Shorter files in number of lines... I'm sure indentation level of 2 also produces shorter files.
I mean, we come back to styling choices which are subjective. If you prefer 4-space indented files and you don't want to provide an option in black for 2 spaces, it is your project and your choice, I just though it would be an interesting addition that could potentially benefit the project, spreaden its adoption and still preserve its essence & formatting rules. There is nothing else I can say. Totally your choice.
I hope you can re-reconsider, but otherwise thanks for your time reading and answering these thoughts! The project is still really cool.

For the record, in case @kwlzn or anybody else stumbles with black and wants 2 spaces instead of 4 spaces:
$ pip3 install cblack

I've created a public repository for a customized black cblack in github and a build has been deployed to PIP package to make it easier to use.
I decided to create a wrapper project instead of using the hack I was using of patching black.py since I want to use it inside of my organization. Indentation is forced to 2 spaces in cblack, since whoever wants 4 spaces can use black directly.
Last thing I want to say is that black is awesome, othwerise I wouldn't be wrapping it for my particular needs. Thanks!


fix: yt playlist with alert causes exception

fix #602

yeah, i think. i only check for the alertRenderer prop


ERS-7844: StatusChanged event documentation for external stream

Documentation for status changed event published by ERS

@jayanthanantharaman You will need to sign the CLA before this can be merged. Also, please do not add extra spacing to the tables, the format is set automatically by the template. The extra spacing just makes it more difficult to read the markdown.

@jayanthanantharaman You will need to sign the CLA before this can be merged. Also, please do not add extra spacing to the tables, the format is set automatically by the template. The extra spacing just makes it more difficult to read the markdown.

@RoAnnC1 I have signed the CLA. Also I did not add any additional spaces.

Closing this in lieu of https://github.com/SAP-docs/preview.developer.concur.com/pull/642


Feature/sponsors

What does this PR do?
It adds the sponsors page.
How should it be tested manually?
Go to /sponsors and compare it with the spec.
To Do

[x] Replace the sponsors logos with the ones without padding.
[x] Adjust the titles spacing once the logos get their padding removed.
[x] Add the missing sponsors.

@joelalejandro Check the spacing between the logos; The images on the space between overlaying each other, as those are the big square images, so I couldn't get the space between them.


I need help asap I'm sick of trying to get through to you because of your wallet that doesn't work I have lost a lot of money I'm so disappointed HAQQ wallet is probably nothing but a scam if nobody reaches out to me to fix this issue that means you don't care about your clients and all this talk about shreia law is nothing but cosmetic I really believed in you and you have let me down what a shame it was to good to be true finally a Islamic wallet I was so happy only to be let down miserably

System info: [Include Ethermint commit, operating system name, and other relevant details]
Steps to reproduce:

[First Step]
[Second Step]
[and so on...]

Expected behavior: [What you expected to happen]
Actual behavior: [What actually happened]
Additional info: [Include gist of relevant config, logs, etc.]

I am so disappointed with HAQQ wallet so upset you can't get through to customer support I've lost a lot of money because the HAQQ wallet doesn't even work

So Sorry,
I support you any time

My HAQQ TOKEN NOT RECIBE TO TILL.

 Did any HAQQ member ask you to give money?

I don't like any "antiphising code" mail for derivation.😢
Please Don't send me your "antiphising code" mail😢
Please stop your "mail"
I like only True official website mail only.😢
I am informing you... I like only true officiel mail.
 Did any HAQQ member ask you to give money?
—
Reply to this email directly, view it on GitHub
https://github.com/haqq-network/haqq/issues/168#issuecomment-1684888559,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A6EVGZIRXUHHAMOY5O2IOP3XWBX6HANCNFSM6AAAAAA3F4JJ4Y
.
You are receiving this because you commented.Message ID:
@.***>

Hello,
Nobody from HAQQ team will ever ask you to send money, a mnemonic phrase, or a private key.


View Workflow Page Not Receiving Progress Updates

Summary
It seems like the view workflow page is no longer continuously receiving events. On 2.10.2 this did work where progress of the workflow could be viewed without refreshing. The SSE endpoint used to retrieve these events /workflow-events seems to be called once then after the request times out, a new watch request is not started. This may not be the only affected SSE endpoint.
Update:
This also appears to occur on the workflow list page. Where the SSE request eventually terminates with a 504
Gateway Timeout.
Diagnostics
GKE 1.15
On 2.11.4 i've noticed that the workflow graph isn't updating anymore. I upgraded to 2.11.4 from 2.10.2 where this was working before.
This has occurred when viewing any in progress workflow i've tried.
Paste the logs from the workflow controller:
these don't seem relevant

Message from the maintainers:
Impacted by this bug? Give it a 👍. We prioritise the issues with the most 👍.

Would you like to see if you can identify the offending change?

Sure I'll have a look

I have a feeling it has something to do with the changes here: https://github.com/argoproj/argo/commit/6e3c5bef5c2bbfbef4a74b4c9c91e288b8e94735#diff-884cea1f0a354998c12cefc2b8097a881fe6d621fa91c1c549d241d6023fa5b5L42 .
In my browser i added a breakpoint here  ui/src/app/shared/services/requests.ts  and here  ui/src/app/shared/services/requests.ts  . In 2.10 it seems like the error is caught and received by the chained then but in 2.11 its passed to the onerror handler. But i can't tell what would be causing the EventSource to not be reestablished.

What is the UI behaviour? Does it show an error?

No error in the ui i can see. It just stays static in the state it was when loading the page (workflow-details).

Locally i reverted just these changes https://github.com/argoproj/argo/commit/6e3c5bef5c2bbfbef4a74b4c9c91e288b8e94735#diff-0670537605e4212d6dada675c6498eabe38d45eb0d3594d59c0779905a83f18bR319-R322 and after the first request times out another one is established.

Can you test with argocli:latest please?

@alexec I had to modify my proxy config since the cli only works with a grpc connection:
 events { }

 error_log /Users/trevorfoster/tempproxy/error.log info;

 http {
   access_log /Users/trevorfoster/tempproxy/access.log;
   server {
     resolver <IP_ADDRESS>;

     server_name localhost;
     listen 2345 http2;

     set $argo_upstream grpc://<IP_ADDRESS>:2746;
     location / {
         grpc_pass $argo_upstream;
     }
   }
 }

However the watch still times out after one minute because of nginx's default keep alive setting of 1 minute. This keepalive setting is also the reason why the ui request times out. If the request times out the client should re start the watch in my opinion.
Name:                fantastic-whale
Namespace:           argo
ServiceAccount:      default
Status:              Running
Created:             Wed Oct 21 17:44:05 -0400 (1 minute ago)
Started:             Wed Oct 21 17:44:05 -0400 (1 minute ago)
Duration:            1 minute 5 seconds
Progress:            0/1
Parameters:
  message:           hello argo

STEP                TEMPLATE  PODNAME          DURATION  MESSAGE
 ● fantastic-whale  argosay   fantastic-whale  1m
FATA[0060] rpc error: code = Internal desc = stream terminated by RST_STREAM with error code: INTERNAL_ERROR

@alexmt any thoughts on what does Argo CD does about this? Does it send some kind of keep-alive?

The way the UI is coded is that it should present an error notice if there is an error, and then automatically reconnect.

that's what i thought as well since the eventsource handles that but it doesn't seem to work

So we think that the request ends with 200, but we do not reconnect like we should.

Can you please test argoproj/argocli:ui-prog and see if this fixes your issue?

I checked out your changes locally and it seems like a new call still isn't being established in the details ui. I added a breakpoint around the code called on subscribe finish:

It seems like the error handler is being called instead of the third handler where you added the recursive call.

I've made another change. Can you pull the image again and try again?

That seems to work! Very neat, should we make this change for the other eventsource subscribers?

@terev would you be interested in taking over on this fix?

I think we should maybe determine if the error is a disconnect (and reconnect) rather than 403 or 500 (which would result in going into a hot-loop).

https://kaazing.com/kaazing.io/doc/javascript-starter-template

Sweet that makes sense


chore: optionally allow to use a separate collection repo

When developing new features which involves using newer collection we need access to the collection in the image. When doing a developer build of an image provide a build arg for the name of repo
e.g.
podman build --build-arg DEVEL_COLLECTION_LIBRARY=1 --build-arg DEVEL_COLLECTION_REPO=git+https://github.com/mkanoor/event-driven-ansible.git,pg_listener -t localhost/ansible-rulebook:latest .

@Alex-Izquierdo Please review updated it

@ttuffin This should be ported to https://github.com/ansible/ansible-rulebook/pull/575


weird typos in the "Secrets Management with Vault" docs

https://www.puppet.com/integrations/vault-by-hashicorp
this says:
plugins:
  vault:
    server_url: https://vault.example.com:8200cacert: /path/to/caauth:
      method: tokentoken: xxxxx-xxxxx

i think this should be similar to this:
# /etc/puppetlabs/bolt/bolt-defaults.yaml
plugins:
  aws_inventory:
    credentials: /etc/aws/credentials
  vault:
    server_url: http://example.com
    auth:
      method: token
      token: xxxx-xxxx-xxxx-xxxx

https://www.puppet.com/docs/bolt/latest/configuring_bolt.html
also is there any tutorial/ comprehensive guide on how to start a normal project without docker?
i wanna use puppet along with terraform and github actions. its really hard to get started, nobody on discord can help me and i really asked in almost any devops, k8s and networking channel. I really just dont know how to get started

@ji-podhead thanks this is a bug in the docs, so I'm going to move this to the PUPDOC project. About getting help with puppet, join our community slack at https://puppetcommunity.slack.com/


Prepare for Elston M1 / 2.1 M1

[x] Switch master to 2.1
[x] Upgrade to Spring Cloud 2.1
[x] Deal with breaking changes

This is complete.


internal: Skip test/bench attr expansion in resolution instead of collection

This way we skip any path resolving to the test and bench attributes instead of just the lone identifiers(which could very well point to non-builtin attributes).
bors r+

bors retry

bors is not having a good day again
bors r+


Feature Request: Add a fromString function

Please consider adding this function :
fromString : String -> Html

Ideally, how it should work is how you imagine it should work.
content = fromString
"""
Bold strings and italic strings should appear as expected
but
"""

The idea is that this should be analogous to working with markdown, except with angle brackets.
Big use case, REST APIs like last.fm that return their content text as HTML. Even when using their JSON API, the relevant content is returned in HTML in order to include hyperlinks.

You can add https://github.com/bitinn/vdom-parser to elm-html to achieve this goal.

Thanks again @Raynos.


DnsAddressResolverGroup should respect configured EventLoop

Motivation:
DnsAddressResolverGroup allows to be constructed with a DnsNameResolverBuilder and so should respect its configured EventLoop.
Modifications:

Correctly respect the configured EventLoop
Ensure there are no thread-issues by calling copy()
Add unit tests

Result:
Fixes https://github.com/netty/netty/issues/10460

@violetagg PTAL

LGTM