Skip to content

Conversation

@mreid-tt
Copy link
Contributor

@mreid-tt mreid-tt commented Nov 17, 2025

Description

This PR includes the following:

  1. Update syncstorage-rs to v0.21.1

Fixes #6713

Checklist

  • Build rule all-supported completed successfully
  • New installation of package completed successfully
  • Package upgrade completed successfully (Manually install the package again)
  • Package functionality was tested
  • Any needed documentation is updated/created

Type of change

  • Package update

@mreid-tt mreid-tt self-assigned this Nov 17, 2025
@mreid-tt mreid-tt added the build/rust Requires rust build system label Nov 17, 2025
@mreid-tt
Copy link
Contributor Author

Hey @th0ma7, thanks to your efforts to move from mysql-connector-c to mariadb-connector-c as well as your guidance for compilation on non-x64 architectures, this release is able to incorporate the latest version of syncstorage-rs and the newest compatible version of diesel. This addresses some longstanding build issues as noted in #6714 (comment) and #6228 (comment).

The package however cannot yet be merged until #6713 is resolved which is caused by an upstream incompatibility with MariaDB 10 that was introduced in syncstorage-rs v0.19.0.

@th0ma7
Copy link
Contributor

th0ma7 commented Nov 18, 2025

I believe the fix got merged, only missing a newer release, maybe?! It may be possible for testing to checkout for that specific commit and see if it works? Using git type download. I have an example of that commented in intel-media driver or sdk if that helps, all you need is the fix commit (or using current latest on master/main or what ever branch containing the fix)

@mreid-tt

This comment was marked as outdated.

@th0ma7
Copy link
Contributor

th0ma7 commented Nov 18, 2025

Waa worth a try ...

@mreid-tt
Copy link
Contributor Author

Waa worth a try ...

Ok, so I got further on this working with the upstream ticket (mozilla-services/syncstorage-rs#1804). So it turns out that I can apply a slightly modified patch to achieve the same result. However the challenge I am seeing now as noted in the ticket is that it still fails to work only if I'm using unix sockets. If I turn on TCP ports on the MariaDB server and point to the localhost IP (127.0.0.1) it works just fine.

I don't know if this is something weird with the changeover to mariadb-connector-c or some other issue in our build. At this point I'm unsure of what to try next. Let me know if you have any ideas.

@mreid-tt
Copy link
Contributor Author

Confirmed Behavior Update Based on Local Testing

I’ve completed additional testing on syncstorage-rs v0.21.1 (with the diesel-async backend) and can confirm the following:

  1. Earlier versions (e.g., v0.18.3) used synchronous Diesel (v2.1.6).
    In those versions, database URLs of the form:

    mysql://user:pass@localhost/dbname
    

    worked correctly without any socket parameters. Diesel/MySQL automatically treated localhost as a Unix-socket connection, so MariaDB did not need to expose a TCP listener.

  2. In v0.21.x, after the migration to diesel-async, this behavior changed:

  3. However, Unix-socket connections do still work—they just require the new DSN parameter:

    ?socket=/run/mysqld/mysqld10.sock
    

    Adding this to both syncstorage.database_url and tokenserver.database_url restores full functionality. Example:

    mysql://user:pass@localhost/syncstorage_rs?socket=/run/mysqld/mysqld10.sock
    
  4. After adding the ?socket= parameter, the service works normally even with MariaDB TCP networking disabled.

Conclusion

This confirms a behavior change between the synchronous Diesel backend and the current diesel-async backend:
Unix sockets are still supported, but automatic socket detection via localhost no longer occurs, and the explicit ?socket= parameter is now required for socket-only installations.

@mreid-tt mreid-tt merged commit c0d3b35 into SynoCommunity:master Nov 21, 2025
15 checks passed
@mreid-tt mreid-tt added status/published Published and activated (may take up to 48h until visible in DSM package manager) and removed status/ready-to-merge labels Nov 21, 2025
@mreid-tt mreid-tt deleted the ffsync-update branch November 21, 2025 02:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

build/rust Requires rust build system status/published Published and activated (may take up to 48h until visible in DSM package manager)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FFSYNC] GET fail 500 https://example.com/1.5/4/storage/meta/global

2 participants