Skip to content

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
    • Help
    • Submit feedback
    • Contribute to GitLab
  • Sign in
haskell-gargantext
haskell-gargantext
  • Project
    • Project
    • Details
    • Activity
    • Releases
    • Cycle Analytics
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Charts
  • Issues 159
    • Issues 159
    • List
    • Board
    • Labels
    • Milestones
  • Merge Requests 6
    • Merge Requests 6
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
    • Charts
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • gargantext
  • haskell-gargantexthaskell-gargantext
  • Merge Requests
  • !397

Merged
Opened Mar 17, 2025 by Alfredo Di Napoli@AlfredoDiNapoli
  • Report abuse
Report abuse

Switch to NNG (from Nanomsg), fix (allegedly) Flaky tests

Allegedly fixes #440 (closed).

This MR is a tale of two fixes. The first fix, i.e. switching from nanomsg to nng was motivated by the fact I wanted to be 100% sure that test runs would be nice and isolated between each other (see #440 (closed) commentary). To do so, I wanted to have the Dispatcher and CE talk using the IPC protocol during testing, but it turned out that our version of nanomsg wasn't working with that protocol. This is why I switched to be using nng (the moral successor of nanomsg).

Here is where the second story begins; in order to support using nng in GGTX, I had to update my own fork of nanomsg with the code necessary to use the nng functions from FFI. As I was at it, I have started incorporating various outstanding fixes that were submitted to the main repo over the years but that ended up being unmerged.

In particular, once I have cherry-picked this fix my tests started to have predicable again. My hunch is that the previous version of send wasn't always waiting for the underlying socket to bind completely, resulting in the "illusion" of the payload being sent, when in reality it wasn't: now the tests relying on reading from the destination TChan wouldn't see a value readily available on time, triggering the bug.

Check out, review, and merge locally

Step 1. Fetch and check out the branch for this merge request

git fetch origin
git checkout -b adinapoli/issue-440-part-2 origin/adinapoli/issue-440-part-2

Step 2. Review the changes locally

Step 3. Merge the branch and fix any conflicts that come up

git fetch origin
git checkout origin/dev
git merge --no-ff adinapoli/issue-440-part-2

Step 4. Push the result of the merge to GitLab

git push origin dev

Note that pushing to GitLab requires write access to this repository.

Tip: You can also checkout merge requests locally by following these guidelines.

  • Discussion 25
  • Commits 9
  • Pipelines 3
  • Changes 15
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
1
Labels
Ready to merge
Assign labels
  • View project labels
Reference: gargantext/haskell-gargantext!397

Revert this commit

This will create a new commit in order to revert the existing changes.

Switch branch
Cancel
A new branch will be created in your fork and a new merge request will be started.

Cherry-pick this commit

Switch branch
Cancel
A new branch will be created in your fork and a new merge request will be started.