/
Next Release: Teak - Operator/Dev Notes

Next Release: Teak - Operator/Dev Notes

The 20th Open edX community release will be named Teak. Consult the Open edX Release Schedule for details around when the release master branch will be cut and the actual release will occur.

Put stuff here that we have to remember when we start packaging up Teak.  Especially important is information that system installers or operators will need to know. Please include your name when you add an item, so that we can get back to you with questions.

Operational

  • In LMS and CMS, Celery now uses task protocol 2. (@Tim McCormack)

    • Action: Any operator using custom Celery tooling should ensure it is compatible with protocol 2. For other operators, no action is required.

    • Background: Celery 4.0 switched how task messages are structured and the new message format is called protocol 2. The version of Celery we currently use (anything >=4.0) can create and consume both protocol versions and it should be safe to switch between them with zero downtime.

      • By default, Celery 4.0 and higher produce messages in this format, and Celery 3.1.25 and higher can read messages in this format.

      • edx-platform was pinned to protocol 1 during the upgrade to Celery 4, presumably as a precaution. This change is the long-delayed unpinning of the protocol version so that Celery can use its default version.

      • Operators can still override the protocol version using the Django setting CELERY_TASK_PROTOCOL although there is no guarantee that protocol 1 compatibility will be preserved in the future.

  • When codejail is used by LMS and CMS, it no longer requires write access to the sandbox virtualenv .config or .cache directories. (@Tim McCormack)

    • Action: If you run codejail, it is recommended that you remove write permissions to <SANDENV>/.config and <SANDENV>/.cache from your AppArmor profile, if possible.

    • Background: Running import matplotlib in a custom Python-evaluated XBlock in Sumac and earlier required the AppArmor profile to allow write access to one of these directories. In Teak, edxapp now sets the MPLCONFIGDIR environment variable for inputs sent to codejail, so matplotlib will now write to the ./tmp/ subdirectory inside the codejail-created sandbox.

      • You should be able to identify these exclusions by looking for lines like /home/sandbox/.config/ wrix, although the exact parent directory may vary. Other temporary directories may have been allowed instead, such as /tmp. Any such write permission to a global directory is inadvisable, since it reduces the ability of codejail to perform effective sandboxing. Removing these lines in Teak will (appropriately) reduce the permissions of sandboxed code. They should not be removed before Teak, however, as this will cause matplotlib to fail to load.

      • Operators who have not previously needed to support matplotlib in instructor or learner code may not have these exclusions in their AppArmor configurations. If this is your situation, no action is required.

      • Removing these lines may cause other, unanticipated failures in sandboxed code. Monitor your codejail logs and failure rates when deploying this change.

Deprecations and Removals

  • [DEPR]: block_structure.storage_backing_for_cache in edx-platform · Issue #32 · openedx/public-engineering (@Feanil Patel)

    • This is a simplification to how course content is cached. It should be invisible to all end users.

    • Some operators may need to run a management command to re-populate the cache:

      • ./manage.py lms generate_course_blocks --all_courses --settings=production

  • The flag ENABLE_BLAKE2B_HASHING was removed. blake2b hashing is now used for caching instead of the deprecated md4 hashing. After upgrading, it’s possible that performance could be degraded as the cache rebuilds.

 

Notes for Release Manager (not for release notes)

Default Changes for Teak

 

Related content