Skip to content

Conversation

@marcellamaki
Copy link
Member

Summary

References

Reviewer guidance

ozer550 and others added 27 commits November 13, 2025 11:56
Does not appear to be used anywhere.
Doing as a single commit in case of ressurection.
…ndard.

And deleting defunct cloudbuild prod yaml
Making a separate commit for bookmarking purposes. Seems we used to deploy to a separate/distinct dev cluster, and create new postgres instances for every single pr.
Standardizing on image-specific docker locations.
Will delete after both have been updated.
Implements soft shutdown feature from Celery 5.5.3 to prevent task
interruption during pod termination. Resolves #5000.

Changes:
- Add worker_soft_shutdown_timeout (28s) to Celery config in settings.py
- Add REMAP_SIGTERM=SIGQUIT to K8s shared env vars to trigger soft shutdown

When K8s sends SIGTERM during pod termination, workers will now:
1. Stop accepting new tasks
2. Continue processing current task for up to 28 seconds
3. Exit cleanly if task completes, or timeout after 28s
4. Allow K8s 2s buffer before 30s grace period expires

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Update paths for nginx Dockerfile in workflow
…ix-011CUcP3gvHvA6ojaMVJ1ppx

Configure Celery for graceful shutdown during K8s deployments
When Language.id was changed from max_length=7 to max_length=14 in
migration 0081, Django 1.9 did not cascade the primary key column size
change to foreign key and many-to-many junction table columns.

This migration fixes those columns for databases that were created
before the migration squash. It is idempotent - columns that are
already varchar(14) are not modified.

Fixes: contentcuration_channel.language_id
Fixes: contentcuration_channel_included_languages.language_id
Fixes: contentcuration_contentnode.language_id
Fixes: contentcuration_file.language_id

Adds migration test that deliberately corrupts the DB columns
then runs the migration and confirms the fix.
…-errors-01HPRTCcfQktQKt1z79MzqtV

Prevent and handle IntegrityErrors during user creation
Add missing fields to resource details sync operation:
- language: ContentNode language field
- provider: Provider organization field
- aggregator: Aggregator organization field
- role_visibility: Visible to field (learner/coach)

These fields were not being synced when users selected the "Resource details"
checkbox during sync operations. They are now included in the sync_resource_details
field list.

Also add comprehensive unit tests to verify:
- Each field syncs correctly when sync_resource_details=True
- All four fields sync together
- Fields do not sync when sync_resource_details=False

Fixes #4930
…-01HLt4SubotNV5ebAegz2jUa

Add fields language, provider, aggregator, role_visibility to sync op
After verification on production servers, only the
contentcuration_channel_included_languages junction table is affected
by the varchar(7) issue. The other FK columns (channel.language_id,
contentnode.language_id, file.language_id) are already varchar(14).

This simplifies the migration to only fix the one affected column.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Fix Language foreign key column lengths
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants