Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Relay and Watchmen synchronization fail outright on Linux #4907

Open
snelzing opened this issue Feb 6, 2025 · 1 comment
Open

Relay and Watchmen synchronization fail outright on Linux #4907

snelzing opened this issue Feb 6, 2025 · 1 comment

Comments

@snelzing
Copy link

snelzing commented Feb 6, 2025

I am having issues with a yarn and React Native project and getting Relay and Watchmen to behave. So I made another example project to isolate it down to just watchmen, relay, and the bare minimum of what else was needed to have a project that runs. 

https://github.com/snelzing/Relay-and-Watchman-Practice-project

Even in this simple project, Watchmen fails to run and gets the same error. Here is the error (sorry it is long and gnarly, but I figured I needed to show the complete error)

This happens on Debian Bookworm, Linux Mint Una, and Ubuntu focal.

yarn run v1.22.22  
$ relay-compiler --watch  
[INFO] Querying files to compile...  
[ERROR] Watchman error: The watchman server reported an error: "watchman::QueryExecError: query failed: synchronization failed: ", while executing command: QueryRequest(  
    "query",  
    "/workspaces/Relay-and-Watchman-Practice-project",  
    QueryRequestCommon {  
        glob: None,  
        glob_noescape: false,  
        glob_includedotfiles: false,  
        path: Some(  
            [  
                RecursivePath(  
                    "",  
                ),  
            ],  
        ),  
        suffix: None,  
        since: None,  
        relative_root: None,  
        expression: Some(  
            All(  
                [  
                    FileType(  
                        Regular,  
                    ),  
                    Any(  
                        [  
                            All(  
                                [  
                                    All(  
                                        [  
                                            DirName(  
                                                DirNameTerm {  
                                                    path: "src",  
                                                    depth: None,  
                                                },  
                                            ),  
                                            Suffix(  
                                                [  
                                                    "js",  
                                                    "jsx",  
                                                ],  
                                            ),  
                                        ],  
                                    ),  
                                    Not(  
                                        Any(  
                                            [  
                                                Match(  
                                                    MatchTerm {  
                                                        glob: "**/node_modules/**",  
                                                        wholename: true,  
                                                        include_dot_files: false,  
                                                        no_escape: false,  
                                                    },  
                                                ),  
                                                Match(  
                                                    MatchTerm {  
                                                        glob: "**/__mocks__/**",  
                                                        wholename: true,  
                                                        include_dot_files: false,  
                                                        no_escape: false,  
                                                    },  
                                                ),  
                                                Match(  
                                                    MatchTerm {  
                                                        glob: "**/__generated__/**",  
                                                        wholename: true,  
                                                        include_dot_files: false,  
                                                        no_escape: false,  
                                                    },  
                                                ),  
                                            ],  
                                        ),  
                                    ),  
                                ],  
                            ),  
                            Name(  
                                NameTerm {  
                                    paths: [  
                                        "schema.graphql",  
                                    ],  
                                    wholename: true,  
                                },  
                            ),  
                        ],  
                    ),  
                ],  
            ),  
        ),  
        fields: [  
            "name",  
            "exists",  
        ],  
        empty_on_fresh_instance: false,  
        omit_changed_files: false,  
        fail_if_no_saved_state: false,  
        case_sensitive: false,  
        sync_timeout: Default,  
        settle_period: None,  
        settle_timeout: None,  
        dedup_results: false,  
        lock_timeout: None,  
        request_id: None,  
        always_include_directories: false,  
    },  
)  
[ERROR] Compilation failed.  
[ERROR] Unable to run relay compiler. Error details:  
Watchman { source: WatchmanServerError { message: "watchman::QueryExecError: query failed: synchronization failed: ", command: "QueryRequest(\n \"query\",\n \"/workspaces/Relay-and-Watchman-Practice-project\",\n QueryRequestCommon {\n glob: None,\n glob_noescape: false,\n glob_includedotfiles: false,\n path: Some(\n [\n RecursivePath(\n \"\",\n ),\n ],\n ),\n suffix: None,\n since: None,\n relative_root: None,\n expression: Some(\n All(\n [\n FileType(\n Regular,\n ),\n Any(\n [\n All(\n [\n All(\n [\n DirName(\n DirNameTerm {\n path: \"src\",\n depth: None,\n },\n ),\n Suffix(\n [\n \"js\",\n \"jsx\",\n ],\n ),\n ],\n ),\n Not(\n Any(\n [\n Match(\n MatchTerm {\n glob: \"**/node_modules/**\",\n wholename: true,\n include_dot_files: false,\n no_escape: false,\n },\n ),\n Match(\n MatchTerm {\n glob: \"**/__mocks__/**\",\n wholename: true,\n include_dot_files: false,\n no_escape: false,\n },\n ),\n Match(\n MatchTerm {\n glob: \"**/__generated__/**\",\n wholename: true,\n include_dot_files: false,\n no_escape: false,\n },\n ),\n ],\n ),\n ),\n ],\n ),\n Name(\n NameTerm {\n paths: [\n \"schema.graphql\",\n ],\n wholename: true,\n },\n ),\n ],\n ),\n ],\n ),\n ),\n fields: [\n \"name\",\n \"exists\",\n ],\n empty_on_fresh_instance: false,\n omit_changed_files: false,\n fail_if_no_saved_state: false,\n case_sensitive: false,\n sync_timeout: Default,\n settle_period: None,\n settle_timeout: None,\n dedup_results: false,\n lock_timeout: None,\n request_id: None,\n always_include_directories: false,\n },\n)" } }  
error Command failed with exit code 1.  
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

 

I tried increasing the file watcher limit with 

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p but no difference is made

I also tried watchman watch-del-all to no avail. Has anyone had similar issues with Relay and Watchmen on Linux?

I am also wondering if it is related to this issue at all, which I sometimes get:

#3674

@lynnshaoyu
Copy link
Contributor

thanks for alerting, we added a task to fix it internally when we get around to it, but would love to get contributions from OSS if anyone is interested in taking it on

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants