text:
x/tools/gopls: analyzer fillstruct does not return any diagnoses

gopls version

v0.13.2
go env

GO111MODULE=''
GOARCH='amd64'
GOBIN=''
GOCACHE='/home/arthur/.cache/go-build'
GOENV='/home/arthur/.config/go/env'
GOEXE=''
GOEXPERIMENT=''
GOFLAGS=''
GOHOSTARCH='amd64'
GOHOSTOS='linux'
GOINSECURE=''
GOMODCACHE='/home/arthur/go/pkg/mod'
GONOPROXY=''
GONOSUMDB=''
GOOS='linux'
GOPATH='/home/arthur/go'
GOPRIVATE=''
GOPROXY='https://proxy.golang.org,direct'
GOROOT='/usr/local/go'
GOSUMDB='sum.golang.org'
GOTMPDIR=''
GOTOOLCHAIN='auto'
GOTOOLDIR='/usr/local/go/pkg/tool/linux_amd64'
GOVCS=''
GOVERSION='go1.21.1'
GCCGO='gccgo'
GOAMD64='v1'
AR='ar'
CC='gcc'
CXX='g++'
CGO_ENABLED='1'
GOMOD='/home/arthur/personal/goplstest/go.mod'
GOWORK=''
CGO_CFLAGS='-O2 -g'
CGO_CPPFLAGS=''
CGO_CXXFLAGS='-O2 -g'
CGO_FFLAGS='-O2 -g'
CGO_LDFLAGS='-O2 -g'
PKG_CONFIG='pkg-config'
GOGCCFLAGS='-fPIC -m64 -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=/tmp/go-build608842351=/tmp/go-build -gno-record-gcc-switches'
What did you do?

I use this snippet below to test if the fillstruct analyzer works in Neovim editor:
package fillstruct

type Foo struct {
	A int
}

type Bar struct {
	X *Foo
	Y *Foo
}

var _ = Bar{
	X: &Foo{},
}

What did you expect to see?
There should be diagnostics with a message "Fill Bar"
What did you see instead?
No diagnostics appear. Also I check the log of the lsp and see empty response from textDocument/publishDiagnostics.
Editor and settings
My Neovim lspconfig:
settings = {
            gopls = {
              analyses = {
                appends = true,
                nilness = true,
                unusedparams = true,
                unusedwrite = true,
                useany = true,
                fillstruct = true,
              },
              hints = {
                assignVariableTypes = true,
                compositeLiteralFields = true,
                compositeLiteralTypes = true,
                constantValues = true,
                functionTypeParameters = true,
                parameterNames = true,
                rangeVariableTypes = true,
              },
              codelenses = {
                gc_details = false,
                generate = true,
                regenerate_cgo = true,
                run_govulncheck = true,
                test = true,
                tidy = true,
                upgrade_dependency = true,
                vendor = true,
              },
              gofumpt = true,
              semanticTokens = true,
              usePlaceholders = true,
              symbolScope = 'workspace',
              directoryFilters = { '-.git', '-.vscode', '-.idea', '-.vscode-test', '-node_modules' },
              buildFlags = { '-tags=tools' },
            },
          },

Logs
Some logs I capture from running
[INFO][2023-10-22 15:45:29] .../vim/lsp/rpc.lua:634	"Starting RPC client"	{  args = {},  cmd = "/home/arthur/.local/share/nvim/mason/bin/gopls",  extra = {    cwd = "/home/arthur/personal/goplstest"  }}
[DEBUG][2023-10-22 15:45:29] .../vim/lsp/rpc.lua:261	"rpc.send"	{  id = 1,  jsonrpc = "2.0",  method = "initialize",  params = {    capabilities = {      general = {        positionEncodings = { "utf-16" }      },      textDocument = {        callHierarchy = {          dynamicRegistration = false        },        codeAction = {          codeActionLiteralSupport = {            codeActionKind = {              valueSet = { "", "quickfix", "refactor", "refactor.extract", "refactor.inline", "refactor.rewrite", "source", "source.organizeImports" }            }          },          dataSupport = true,          dynamicRegistration = true,          isPreferredSupport = true,          resolveSupport = {            properties = { "edit" }          }        },        completion = {          completionItem = {            commitCharactersSupport = true,            deprecatedSupport = true,            documentationFormat = { "markdown", "plaintext" },            insertReplaceSupport = true,            insertTextModeSupport = {              valueSet = { 1, 2 }            },            labelDetailsSupport = true,            preselectSupport = true,            resolveSupport = {              properties = { "documentation", "detail", "additionalTextEdits", "sortText", "filterText", "insertText", "textEdit", "insertTextFormat", "insertTextMode" }            },            snippetSupport = true,            tagSupport = {              valueSet = { 1 }            }          },          completionItemKind = {            valueSet = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 }          },          completionList = {            itemDefaults = { "commitCharacters", "editRange", "insertTextFormat", "insertTextMode", "data" }          },          contextSupport = true,          dynamicRegistration = false,          insertTextMode = 1        },        declaration = {          linkSupport = true        },        definition = {          dynamicRegistration = true,          linkSupport = true        },        diagnostic = {          dynamicRegistration = false        },        documentHighlight = {          dynamicRegistration = false        },        documentSymbol = {          dynamicRegistration = false,          hierarchicalDocumentSymbolSupport = true,          symbolKind = {            valueSet = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26 }          }        },        formatting = {          dynamicRegistration = true        },        hover = {          contentFormat = { "markdown", "plaintext" },          dynamicRegistration = true        },        implementation = {          linkSupport = true        },        inlayHint = {          dynamicRegistration = true,          resolveSupport = {            properties = {}          }        },        publishDiagnostics = {          dataSupport = true,          relatedInformation = true,          tagSupport = {            valueSet = { 1, 2 }          }        },        rangeFormatting = {          dynamicRegistration = true        },        references = {          dynamicRegistration = false        },        rename = {          dynamicRegistration = true,          prepareSupport = true        },        semanticTokens = {          augmentsSyntaxTokens = true,          dynamicRegistration = false,          formats = { "relative" },          multilineTokenSupport = false,          overlappingTokenSupport = true,          requests = {            full = {              delta = true            },            range = false          },          serverCancelSupport = false,          tokenModifiers = { "declaration", "definition", "readonly", "static", "deprecated", "abstract", "async", "modification", "documentation", "defaultLibrary" },          tokenTypes = { "namespace", "type", "class", "enum", "interface", "struct", "typeParameter", "parameter", "variable", "property", "enumMember", "event", "function", "method", "macro", "keyword", "modifier", "comment", "string", "number", "regexp", "operator", "decorator" }        },        signatureHelp = {          dynamicRegistration = false,          signatureInformation = {            activeParameterSupport = true,            documentationFormat = { "markdown", "plaintext" },            parameterInformation = {              labelOffsetSupport = true            }          }        },        synchronization = {          didSave = true,          dynamicRegistration = false,          willSave = true,          willSaveWaitUntil = true        },        typeDefinition = {          linkSupport = true        }      },      window = {        showDocument = {          support = true        },        showMessage = {          messageActionItem = {            additionalPropertiesSupport = false          }        },        workDoneProgress = true      },      workspace = {        applyEdit = true,        configuration = true,        didChangeWatchedFiles = {          dynamicRegistration = true,          relativePatternSupport = true        },        inlayHint = {          refreshSupport = true        },        semanticTokens = {          refreshSupport = true        },        symbol = {          dynamicRegistration = false,          symbolKind = {            valueSet = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26 }          }        },        workspaceEdit = {          resourceOperations = { "rename", "create", "delete" }        },        workspaceFolders = true      }    },    clientInfo = {      name = "Neovim",      version = "0.10.0-dev+594ff34"    },    initializationOptions = vim.empty_dict(),    processId = 309362,    rootPath = "/home/arthur/personal/goplstest",    rootUri = "file:///home/arthur/personal/goplstest",    trace = "off",    workspaceFolders = { {        name = "/home/arthur/personal/goplstest",        uri = "file:///home/arthur/personal/goplstest"      } }  }}
[DEBUG][2023-10-22 15:45:29] .../vim/lsp/rpc.lua:364	"rpc.receive"	{  id = 1,  jsonrpc = "2.0",  result = {    capabilities = {      callHierarchyProvider = true,      codeActionProvider = {        codeActionKinds = { "quickfix", "refactor.extract", "refactor.rewrite", "source.fixAll", "source.organizeImports" }      },      codeLensProvider = vim.empty_dict(),      completionProvider = {        triggerCharacters = { "." }      },      definitionProvider = true,      documentFormattingProvider = true,      documentHighlightProvider = true,      documentLinkProvider = vim.empty_dict(),      documentSymbolProvider = true,      executeCommandProvider = {        commands = { "gopls.add_dependency", "gopls.add_import", "gopls.apply_fix", "gopls.check_upgrades", "gopls.edit_go_directive", "gopls.fetch_vulncheck_result", "gopls.gc_details", "gopls.generate", "gopls.go_get_package", "gopls.list_imports", "gopls.list_known_packages", "gopls.mem_stats", "gopls.regenerate_cgo", "gopls.remove_dependency", "gopls.reset_go_mod_diagnostics", "gopls.run_go_work_command", "gopls.run_govulncheck", "gopls.run_tests", "gopls.start_debugging", "gopls.start_profile", "gopls.stop_profile", "gopls.test", "gopls.tidy", "gopls.toggle_gc_details", "gopls.update_go_sum", "gopls.upgrade_dependency", "gopls.vendor", "gopls.workspace_stats" }      },      foldingRangeProvider = true,      hoverProvider = true,      implementationProvider = true,      inlayHintProvider = vim.empty_dict(),      referencesProvider = true,      renameProvider = {        prepareProvider = true      },      selectionRangeProvider = true,      semanticTokensProvider = {        full = true,        legend = {          tokenModifiers = { "declaration", "definition", "readonly", "static", "deprecated", "abstract", "async", "modification", "documentation", "defaultLibrary" },          tokenTypes = { "namespace", "type", "class", "enum", "interface", "struct", "typeParameter", "parameter", "variable", "property", "enumMember", "event", "function", "method", "macro", "keyword", "modifier", "comment", "string", "number", "regexp", "operator", "decorator" }        },        range = true      },      signatureHelpProvider = {        triggerCharacters = { "(", "," }      },      textDocumentSync = {        change = 2,        openClose = true,        save = vim.empty_dict()      },      typeDefinitionProvider = true,      workspace = {        workspaceFolders = {          changeNotifications = "workspace/didChangeWorkspaceFolders",          supported = true        }      },      workspaceSymbolProvider = true    },    serverInfo = {      name = "gopls",      version = '{"GoVersion":"go1.21.1","Path":"golang.org/x/tools/gopls","Main":{"Path":"golang.org/x/tools/gopls","Version":"v0.13.2","Sum":"h1:Pyvx6MKvatbX3zzZmdGiFRfQZl0ohPlt2sFxO/5j6Ro=","Replace":null},"Deps":[{"Path":"github.com/BurntSushi/toml","Version":"v1.2.1","Sum":"h1:9F2/+DoOYIOksmaJFPw1tGFy1eDnIJXg+UHjuD8lTak=","Replace":null},{"Path":"github.com/google/go-cmp","Version":"v0.5.9","Sum":"h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=","Replace":null},{"Path":"github.com/sergi/go-diff","Version":"v1.1.0","Sum":"h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=","Replace":null},{"Path":"golang.org/x/exp","Version":"v0.0.0-20220722155223-a9213eeb770e","Sum":"h1:+WEEuIdZHnUeJJmEUjyYC2gfUMj69yZXw17EnHg/otA=","Replace":null},{"Path":"golang.org/x/exp/typeparams","Version":"v0.0.0-20221212164502-fae10dda9338","Sum":"h1:2O2DON6y3XMJiQRAS1UWU+54aec2uopH3x7MAiqGW6Y=","Replace":null},{"Path":"golang.org/x/mod","Version":"v0.12.0","Sum":"h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc=","Replace":null},{"Path":"golang.org/x/sync","Version":"v0.3.0","Sum":"h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E=","Replace":null},{"Path":"golang.org/x/sys","Version":"v0.10.0","Sum":"h1:SqMFp9UcQJZa+pmYuAKjd9xq1f0j5rLcDIk0mj4qAsA=","Replace":null},{"Path":"golang.org/x/text","Version":"v0.11.0","Sum":"h1:LAntKIrcmeSKERyiOh0XMV39LXS8IE9UL2yP7+f5ij4=","Replace":null},{"Path":"golang.org/x/tools","Version":"v0.11.2-0.20230810185051-cc6b5804b8cf","Sum":"h1:Oush7UwPamr2/iNeNFBuNFj89YyHn0YY69EKDdvANnk=","Replace":null},{"Path":"golang.org/x/vuln","Version":"v0.0.0-20230110180137-6ad3e3d07815","Sum":"h1:A9kONVi4+AnuOr1dopsibH6hLi1Huy54cbeJxnq4vmU=","Replace":null},{"Path":"honnef.co/go/tools","Version":"v0.4.2","Sum":"h1:6qXr+R5w+ktL5UkwEbPp+fEvfyoMPche6GkOpGHZcLc=","Replace":null},{"Path":"mvdan.cc/gofumpt","Version":"v0.4.0","Sum":"h1:JVf4NN1mIpHogBj7ABpgOyZc65/UUOkKQFkoURsz4MM=","Replace":null},{"Path":"mvdan.cc/xurls/v2","Version":"v2.4.0","Sum":"h1:tzxjVAj+wSBmDcF6zBB7/myTy3gX9xvi8Tyr28AuQgc=","Replace":null}],"Settings":[{"Key":"-buildmode","Value":"exe"},{"Key":"-compiler","Value":"gc"},{"Key":"DefaultGODEBUG","Value":"panicnil=1"},{"Key":"CGO_ENABLED","Value":"1"},{"Key":"CGO_CFLAGS","Value":""},{"Key":"CGO_CPPFLAGS","Value":""},{"Key":"CGO_CXXFLAGS","Value":""},{"Key":"CGO_LDFLAGS","Value":""},{"Key":"GOARCH","Value":"amd64"},{"Key":"GOOS","Value":"linux"},{"Key":"GOAMD64","Value":"v1"}],"Version":"v0.13.2"}'    }  }}
[DEBUG][2023-10-22 15:45:29] .../vim/lsp/rpc.lua:261	"rpc.send"	{  jsonrpc = "2.0",  method = "initialized",  params = vim.empty_dict()}
[DEBUG][2023-10-22 15:45:29] .../vim/lsp/rpc.lua:261	"rpc.send"	{  jsonrpc = "2.0",  method = "workspace/didChangeConfiguration",  params = {    settings = {      gopls = {        analyses = {          appends = true,          fillstruct = true,          nilness = true,          unusedparams = true,          unusedwrite = true,          useany = true        },        buildFlags = { "-tags=tools" },        codelenses = {          gc_details = false,          generate = true,          regenerate_cgo = true,          run_govulncheck = true,          test = true,          tidy = true,          upgrade_dependency = true,          vendor = true        },        directoryFilters = { "-.git", "-.vscode", "-.idea", "-.vscode-test", "-node_modules" },        gofumpt = true,        hints = {          assignVariableTypes = true,          compositeLiteralFields = true,          compositeLiteralTypes = true,          constantValues = true,          functionTypeParameters = true,          parameterNames = true,          rangeVariableTypes = true        },        semanticTokens = true,        symbolScope = "workspace",        usePlaceholders = true      }    }  }}
[DEBUG][2023-10-22 15:45:29] .../vim/lsp/rpc.lua:261	"rpc.send"	{  jsonrpc = "2.0",  method = "workspace/didChangeConfiguration",  params = {    settings = {      gopls = {        analyses = {          appends = true,          fillstruct = true,          nilness = true,          unusedparams = true,          unusedwrite = true,          useany = true        },        buildFlags = { "-tags=tools" },        codelenses = {          gc_details = false,          generate = true,          regenerate_cgo = true,          run_govulncheck = true,          test = true,          tidy = true,          upgrade_dependency = true,          vendor = true        },        directoryFilters = { "-.git", "-.vscode", "-.idea", "-.vscode-test", "-node_modules" },        gofumpt = true,        hints = {          assignVariableTypes = true,          compositeLiteralFields = true,          compositeLiteralTypes = true,          constantValues = true,          functionTypeParameters = true,          parameterNames = true,          rangeVariableTypes = true        },        semanticTokens = true,        symbolScope = "workspace",        usePlaceholders = true      }    }  }}
[INFO][2023-10-22 15:45:29] .../lua/vim/lsp.lua:1458	"LSP[gopls]"	"server_capabilities"	{  server_capabilities = {    callHierarchyProvider = true,    codeActionProvider = {      codeActionKinds = { "quickfix", "refactor.extract", "refactor.rewrite", "source.fixAll", "source.organizeImports" }    },    codeLensProvider = vim.empty_dict(),    completionProvider = {      triggerCharacters = { "." }    },    definitionProvider = true,    documentFormattingProvider = true,    documentHighlightProvider = true,    documentLinkProvider = vim.empty_dict(),    documentSymbolProvider = true,    executeCommandProvider = {      commands = { "gopls.add_dependency", "gopls.add_import", "gopls.apply_fix", "gopls.check_upgrades", "gopls.edit_go_directive", "gopls.fetch_vulncheck_result", "gopls.gc_details", "gopls.generate", "gopls.go_get_package", "gopls.list_imports", "gopls.list_known_packages", "gopls.mem_stats", "gopls.regenerate_cgo", "gopls.remove_dependency", "gopls.reset_go_mod_diagnostics", "gopls.run_go_work_command", "gopls.run_govulncheck", "gopls.run_tests", "gopls.start_debugging", "gopls.start_profile", "gopls.stop_profile", "gopls.test", "gopls.tidy", "gopls.toggle_gc_details", "gopls.update_go_sum", "gopls.upgrade_dependency", "gopls.vendor", "gopls.workspace_stats" }    },    foldingRangeProvider = true,    hoverProvider = true,    implementationProvider = true,    inlayHintProvider = vim.empty_dict(),    referencesProvider = true,    renameProvider = {      prepareProvider = true    },    selectionRangeProvider = true,    semanticTokensProvider = {      full = true,      legend = {        tokenModifiers = { "declaration", "definition", "readonly", "static", "deprecated", "abstract", "async", "modification", "documentation", "defaultLibrary" },        tokenTypes = { "namespace", "type", "class", "enum", "interface", "struct", "typeParameter", "parameter", "variable", "property", "enumMember", "event", "function", "method", "macro", "keyword", "modifier", "comment", "string", "number", "regexp", "operator", "decorator" }      },      range = true    },    signatureHelpProvider = {      triggerCharacters = { "(", "," }    },    textDocumentSync = {      change = 2,      openClose = true,      save = vim.empty_dict()    },    typeDefinitionProvider = true,    workspace = {      workspaceFolders = {        changeNotifications = "workspace/didChangeWorkspaceFolders",        supported = true      }    },    workspaceSymbolProvider = true  }}
[DEBUG][2023-10-22 15:45:29] .../vim/lsp/rpc.lua:261	"rpc.send"	{  jsonrpc = "2.0",  method = "textDocument/didOpen",  params = {    textDocument = {      languageId = "go",      text = "package fillstruct\n\ntype Foo struct {\n\tA int\n}\n\ntype Bar struct {\n\tX *Foo\n\tY *Foo\n}\n\nvar _ = Bar{\n\tX: &Foo{},\n}\n",      uri = "file:///home/arthur/personal/goplstest/fillstruct/fill.go",      version = 0    }  }}
[DEBUG][2023-10-22 15:45:29] .../lua/vim/lsp.lua:1506	"LSP[gopls]"	"client.request"	1	"textDocument/inlayHint"	{  range = {    ["end"] = {      character = 0,      line = 14    },    start = {      character = 0,      line = 0    }  },  textDocument = {    uri = "file:///home/arthur/personal/goplstest/fillstruct/fill.go"  }}	<function 1>	12
[DEBUG][2023-10-22 15:45:29] .../vim/lsp/rpc.lua:261	"rpc.send"	{  id = 2,  jsonrpc = "2.0",  method = "textDocument/inlayHint",  params = {    range = {      ["end"] = {        character = 0,        line = 14      },      start = {        character = 0,        line = 0      }    },    textDocument = {      uri = "file:///home/arthur/personal/goplstest/fillstruct/fill.go"    }  }}
[DEBUG][2023-10-22 15:45:29] .../vim/lsp/rpc.lua:364	"rpc.receive"	{  id = 1,  jsonrpc = "2.0",  method = "window/workDoneProgress/create",  params = {    token = "1312045435806158442"  }}
[DEBUG][2023-10-22 15:45:29] .../lua/vim/lsp.lua:1506	"LSP[gopls]"	"client.request"	1	"textDocument/inlayHint"	{  range = {    ["end"] = {      character = 0,      line = 14    },    start = {      character = 0,      line = 0    }  },  textDocument = {    uri = "file:///home/arthur/personal/goplstest/fillstruct/fill.go"  }}	<function 1>	12
[DEBUG][2023-10-22 15:45:29] .../vim/lsp/rpc.lua:261	"rpc.send"	{  id = 3,  jsonrpc = "2.0",  method = "textDocument/inlayHint",  params = {    range = {      ["end"] = {        character = 0,        line = 14      },      start = {        character = 0,        line = 0      }    },    textDocument = {      uri = "file:///home/arthur/personal/goplstest/fillstruct/fill.go"    }  }}
[DEBUG][2023-10-22 15:45:29] .../lua/vim/lsp.lua:1506	"LSP[gopls]"	"client.request"	1	"textDocument/semanticTokens/full"	{  textDocument = {    uri = "file:///home/arthur/personal/goplstest/fillstruct/fill.go"  }}	<function 1>	12
[DEBUG][2023-10-22 15:45:29] .../vim/lsp/rpc.lua:261	"rpc.send"	{  id = 4,  jsonrpc = "2.0",  method = "textDocument/semanticTokens/full",  params = {    textDocument = {      uri = "file:///home/arthur/personal/goplstest/fillstruct/fill.go"    }  }}
[DEBUG][2023-10-22 15:45:29] .../vim/lsp/rpc.lua:380	"server_request: callback result"	{  result = vim.NIL,  status = true}
[DEBUG][2023-10-22 15:45:30] .../vim/lsp/rpc.lua:261	"rpc.send"	{  id = 3,  jsonrpc = "2.0",  result = vim.NIL}
[DEBUG][2023-10-22 15:45:30] .../vim/lsp/rpc.lua:364	"rpc.receive"	{  id = 4,  jsonrpc = "2.0",  method = "workspace/configuration",  params = {    items = { {        section = "gopls"      } }  }}
[DEBUG][2023-10-22 15:45:30] .../vim/lsp/rpc.lua:380	"server_request: callback result"	{  result = { {      analyses = {        appends = true,        fillstruct = true,        nilness = true,        unusedparams = true,        unusedwrite = true,        useany = true      },      buildFlags = { "-tags=tools" },      codelenses = {        gc_details = false,        generate = true,        regenerate_cgo = true,        run_govulncheck = true,        test = true,        tidy = true,        upgrade_dependency = true,        vendor = true      },      directoryFilters = { "-.git", "-.vscode", "-.idea", "-.vscode-test", "-node_modules" },      gofumpt = true,      hints = {        assignVariableTypes = true,        compositeLiteralFields = true,        compositeLiteralTypes = true,        constantValues = true,        functionTypeParameters = true,        parameterNames = true,        rangeVariableTypes = true      },      semanticTokens = true,      symbolScope = "workspace",      usePlaceholders = true    } },  status = true}
[DEBUG][2023-10-22 15:45:30] .../vim/lsp/rpc.lua:261	"rpc.send"	{  id = 4,  jsonrpc = "2.0",  result = { {      analyses = {        appends = true,        fillstruct = true,        nilness = true,        unusedparams = true,        unusedwrite = true,        useany = true      },      buildFlags = { "-tags=tools" },      codelenses = {        gc_details = false,        generate = true,        regenerate_cgo = true,        run_govulncheck = true,        test = true,        tidy = true,        upgrade_dependency = true,        vendor = true      },      directoryFilters = { "-.git", "-.vscode", "-.idea", "-.vscode-test", "-node_modules" },      gofumpt = true,      hints = {        assignVariableTypes = true,        compositeLiteralFields = true,        compositeLiteralTypes = true,        constantValues = true,        functionTypeParameters = true,        parameterNames = true,        rangeVariableTypes = true      },      semanticTokens = true,      symbolScope = "workspace",      usePlaceholders = true    } }}
[DEBUG][2023-10-22 15:45:30] .../vim/lsp/rpc.lua:364	"rpc.receive"	{  id = 5,  jsonrpc = "2.0",  method = "workspace/configuration",  params = {    items = { {        scopeUri = "file:///home/arthur/personal/goplstest",        section = "gopls"      } }  }}
[DEBUG][2023-10-22 15:45:30] .../vim/lsp/rpc.lua:380	"server_request: callback result"	{  result = { {      analyses = {        appends = true,        fillstruct = true,        nilness = true,        unusedparams = true,        unusedwrite = true,        useany = true      },      buildFlags = { "-tags=tools" },      codelenses = {        gc_details = false,        generate = true,        regenerate_cgo = true,        run_govulncheck = true,        test = true,        tidy = true,        upgrade_dependency = true,        vendor = true      },      directoryFilters = { "-.git", "-.vscode", "-.idea", "-.vscode-test", "-node_modules" },      gofumpt = true,      hints = {        assignVariableTypes = true,        compositeLiteralFields = true,        compositeLiteralTypes = true,        constantValues = true,        functionTypeParameters = true,        parameterNames = true,        rangeVariableTypes = true      },      semanticTokens = true,      symbolScope = "workspace",      usePlaceholders = true    } },  status = true}
[DEBUG][2023-10-22 15:45:30] .../vim/lsp/rpc.lua:261	"rpc.send"	{  id = 5,  jsonrpc = "2.0",  result = { {      analyses = {        appends = true,        fillstruct = true,        nilness = true,        unusedparams = true,        unusedwrite = true,        useany = true      },      buildFlags = { "-tags=tools" },      codelenses = {        gc_details = false,        generate = true,        regenerate_cgo = true,        run_govulncheck = true,        test = true,        tidy = true,        upgrade_dependency = true,        vendor = true      },      directoryFilters = { "-.git", "-.vscode", "-.idea", "-.vscode-test", "-node_modules" },      gofumpt = true,      hints = {        assignVariableTypes = true,        compositeLiteralFields = true,        compositeLiteralTypes = true,        constantValues = true,        functionTypeParameters = true,        parameterNames = true,        rangeVariableTypes = true      },      semanticTokens = true,      symbolScope = "workspace",      usePlaceholders = true    } }}
[DEBUG][2023-10-22 15:45:30] .../vim/lsp/rpc.lua:364	"rpc.receive"	{  id = 6,  jsonrpc = "2.0",  method = "workspace/configuration",  params = {    items = { {        section = "gopls"      } }  }}
[DEBUG][2023-10-22 15:45:30] .../vim/lsp/rpc.lua:380	"server_request: callback result"	{  result = { {      analyses = {        appends = true,        fillstruct = true,        nilness = true,        unusedparams = true,        unusedwrite = true,        useany = true      },      buildFlags = { "-tags=tools" },      codelenses = {        gc_details = false,        generate = true,        regenerate_cgo = true,        run_govulncheck = true,        test = true,        tidy = true,        upgrade_dependency = true,        vendor = true      },      directoryFilters = { "-.git", "-.vscode", "-.idea", "-.vscode-test", "-node_modules" },      gofumpt = true,      hints = {        assignVariableTypes = true,        compositeLiteralFields = true,        compositeLiteralTypes = true,        constantValues = true,        functionTypeParameters = true,        parameterNames = true,        rangeVariableTypes = true      },      semanticTokens = true,      symbolScope = "workspace",      usePlaceholders = true    } },  status = true}
[DEBUG][2023-10-22 15:45:30] .../vim/lsp/rpc.lua:261	"rpc.send"	{  id = 6,  jsonrpc = "2.0",  result = { {      analyses = {        appends = true,        fillstruct = true,        nilness = true,        unusedparams = true,        unusedwrite = true,        useany = true      },      buildFlags = { "-tags=tools" },      codelenses = {        gc_details = false,        generate = true,        regenerate_cgo = true,        run_govulncheck = true,        test = true,        tidy = true,        upgrade_dependency = true,        vendor = true      },      directoryFilters = { "-.git", "-.vscode", "-.idea", "-.vscode-test", "-node_modules" },      gofumpt = true,      hints = {        assignVariableTypes = true,        compositeLiteralFields = true,        compositeLiteralTypes = true,        constantValues = true,        functionTypeParameters = true,        parameterNames = true,        rangeVariableTypes = true      },      semanticTokens = true,      symbolScope = "workspace",      usePlaceholders = true    } }}
[DEBUG][2023-10-22 15:45:30] .../vim/lsp/rpc.lua:364	"rpc.receive"	{  id = 7,  jsonrpc = "2.0",  method = "workspace/configuration",  params = {    items = { {        scopeUri = "file:///home/arthur/personal/goplstest",        section = "gopls"      } }  }}
[DEBUG][2023-10-22 15:45:30] .../vim/lsp/rpc.lua:380	"server_request: callback result"	{  result = { {      analyses = {        appends = true,        fillstruct = true,        nilness = true,        unusedparams = true,        unusedwrite = true,        useany = true      },      buildFlags = { "-tags=tools" },      codelenses = {        gc_details = false,        generate = true,        regenerate_cgo = true,        run_govulncheck = true,        test = true,        tidy = true,        upgrade_dependency = true,        vendor = true      },      directoryFilters = { "-.git", "-.vscode", "-.idea", "-.vscode-test", "-node_modules" },      gofumpt = true,      hints = {        assignVariableTypes = true,        compositeLiteralFields = true,        compositeLiteralTypes = true,        constantValues = true,        functionTypeParameters = true,        parameterNames = true,        rangeVariableTypes = true      },      semanticTokens = true,      symbolScope = "workspace",      usePlaceholders = true    } },  status = true}
[DEBUG][2023-10-22 15:45:30] .../vim/lsp/rpc.lua:261	"rpc.send"	{  id = 7,  jsonrpc = "2.0",  result = { {      analyses = {        appends = true,        fillstruct = true,        nilness = true,        unusedparams = true,        unusedwrite = true,        useany = true      },      buildFlags = { "-tags=tools" },      codelenses = {        gc_details = false,        generate = true,        regenerate_cgo = true,        run_govulncheck = true,        test = true,        tidy = true,        upgrade_dependency = true,        vendor = true      },      directoryFilters = { "-.git", "-.vscode", "-.idea", "-.vscode-test", "-node_modules" },      gofumpt = true,      hints = {        assignVariableTypes = true,        compositeLiteralFields = true,        compositeLiteralTypes = true,        constantValues = true,        functionTypeParameters = true,        parameterNames = true,        rangeVariableTypes = true      },      semanticTokens = true,      symbolScope = "workspace",      usePlaceholders = true    } }}
[DEBUG][2023-10-22 15:45:30] .../vim/lsp/rpc.lua:364	"rpc.receive"	{  jsonrpc = "2.0",  method = "textDocument/publishDiagnostics",  params = {    diagnostics = {},    uri = "file:///home/arthur/personal/goplstest/fillstruct/fill.go"  }}
[DEBUG][2023-10-22 15:45:30] .../vim/lsp/rpc.lua:364	"rpc.receive"	{  id = 4,  jsonrpc = "2.0",  result = {    data = { 0, 0, 7, 15, 0, 0, 8, 10, 0, 0, 2, 0, 4, 15, 0, 0, 5, 3, 1, 2, 0, 4, 6, 15, 0, 1, 1, 1, 8, 2, 0, 2, 3, 1, 512, 3, 0, 4, 15, 0, 0, 5, 3, 1, 2, 0, 4, 6, 15, 0, 1, 1, 1, 8, 2, 0, 2, 1, 21, 0, 0, 1, 3, 1, 0, 1, 1, 1, 8, 2, 0, 2, 1, 21, 0, 0, 1, 3, 1, 0, 3, 0, 3, 15, 0, 0, 4, 1, 8, 2, 0, 4, 3, 1, 0, 1, 1, 1, 8, 0, 0, 3, 1, 21, 0, 0, 1, 3, 1, 0 },    resultId = "2023-10-22 15:45:30.230666321 +0700 +07 m=+1.127840532"  }}
[DEBUG][2023-10-22 15:45:30] .../vim/lsp/rpc.lua:364	"rpc.receive"	{  id = 2,  jsonrpc = "2.0"}
[DEBUG][2023-10-22 15:45:30] .../vim/lsp/rpc.lua:364	"rpc.receive"	{  id = 3,  jsonrpc = "2.0"}
[DEBUG][2023-10-22 15:45:30] .../vim/lsp/rpc.lua:364	"rpc.receive"	{  id = 5,  jsonrpc = "2.0"}
[DEBUG][2023-10-22 15:45:31] .../lua/vim/lsp.lua:1506	"LSP[gopls]"	"client.request"	1	"textDocument/codeLens"	{  textDocument = {    uri = "file:///home/arthur/personal/goplstest/fillstruct/fill.go"  }}	<function 1>	12
[DEBUG][2023-10-22 15:45:31] .../vim/lsp/rpc.lua:261	"rpc.send"	{  id = 6,  jsonrpc = "2.0",  method = "textDocument/codeLens",  params = {    textDocument = {      uri = "file:///home/arthur/personal/goplstest/fillstruct/fill.go"    }  }}
[DEBUG][2023-10-22 15:45:31] .../vim/lsp/rpc.lua:364	"rpc.receive"	{  id = 6,  jsonrpc = "2.0"}
[DEBUG][2023-10-22 15:45:31] .../vim/lsp/rpc.lua:364	"rpc.receive"	{  jsonrpc = "2.0",  method = "textDocument/publishDiagnostics",  params = {    diagnostics = { {        message = 'import "golang.org/x/tools/cmd/stringer" is a program, not an importable package',        range = {          ["end"] = {            character = 1,            line = 6          },          start = {            character = 1,            line = 6          }        },        severity = 1,        source = "go list"      } },    uri = "file:///home/arthur/personal/goplstest/tools.go"  }}

That's not how the fillstruct analyzer works: it is not used for producing diagnostics, only for producing code actions. (if it were to produce diagnostics it would be far too noisy).
There should be a code action available on the composite literal to fill the struct. Please comment if I'm misunderstanding or if that's not the case, and I'll reopen.
The fact that fillstruct is expressed as an analyzer is a historical artifact, and will be cleaned up in #61559.

authors: AnhQuanTrl findleyr


text:
syscall/plan9: remove spooky fd action at a distance

Change Plan 9 fork/exec to use the O_CLOEXEC file
descriptor, instead of relying on spooky at a
distance.
Historically, Plan 9 has set the O_CLOEXEC flag on
the underlying channels in the kernel, rather
than the file descriptors -- if two fds pointed
at a single channel, as with dup, changing the
flags on one of them would be observable on the
other.
The per-Chan semantics are ok, if unexpected,
when a chan is only handled within a single
process, but this isn't always the case.
Forked processes share Chans, but even more of
a problem is the interaction between /srv and
OCEXEC, which can lead to unexectedly closed
file descriptors in completely unrelated
proceses. For example:
func exists() bool {
	// If some other thread execs here,
	// we don't want to leak the fd, so
	// open it O_CLOEXEC
	fd := Open("/srv/foo", O_CLOEXEC)
	if fd != -1 {
		Close(fd)
		return true
	}
	return false
}

would close the connection to any file descriptor
(maybe even for the root fs) in ALL other processes
that have it open if an exec were to happen(!),
which is quite undesriable.
As a result, 9front will be changing this behavior
for the next release.
Go is the only code observed so far that relies on
this behavior on purpose, and  It's easy to make the
code work with both semantics: simply using the file
descriptor that was opened with O_CEXEC instead of
throwing it away.
So we do that here.
Fixes #43524

@googlebot I signed it!

@googlebot I signed it!

source: gharchive/pull-request

repo: golang/go

license_type: permissive

license_source: github-api


text:
internal/impl: deadlock when calling proto.RegisterExtension

What version of protobuf and what language are you using?
Version: v1.4.0-rc.3
What did you do?
Tried running https://play.golang.org/p/_dSwb-FLKzk locally.
What did you expect to see?
The program finishing successfully
What did you see instead?
A mutex deadlock trace:
$ go run main.go
fatal error: all goroutines are asleep - deadlock!

goroutine 1 [semacquire, locked to thread]:
sync.runtime_SemacquireMutex(0x868fec, 0xc00008d700, 0x0)
        /usr/lib/go/src/runtime/sema.go:71 +0x47
sync.(*RWMutex).RLock(...)
        /usr/lib/go/src/sync/rwmutex.go:50
google.golang.org/protobuf/reflect/protoregistry.(*Files).FindDescriptorByName(0xc000104340, 0xc000177405, 0x1c, 0x0, 0x0, 0x0, 0x0)
        /go/pkg/mod/google.golang.org/protobuf@v1.20.0/reflect/protoregistry/registry.go:157 +0xa08
google.golang.org/protobuf/internal/impl.resolverOnly.FindDescriptorByName(0xc000104340, 0xc000177405, 0x1c, 0x0, 0x0, 0x0, 0xc000177321)
        /go/pkg/mod/google.golang.org/protobuf@v1.20.0/internal/impl/legacy_file.go:77 +0x3f
google.golang.org/protobuf/internal/filedesc.(*File).resolveMessageDependency(0xc00013ea80, 0x6a7480, 0xc0001047e0, 0x1, 0x52e0d1, 0xc0001967a1)
        /go/pkg/mod/google.golang.org/protobuf@v1.20.0/internal/filedesc/desc_lazy.go:125 +0x18a
google.golang.org/protobuf/internal/filedesc.newRawFile(0x0, 0x0, 0xc000196600, 0x1a8, 0x200, 0x1, 0x1, 0x6a1680, 0xc0001062d0, 0x6a3300, ...)
        /go/pkg/mod/google.golang.org/protobuf@v1.20.0/internal/filedesc/desc_init.go:35 +0x2a9
google.golang.org/protobuf/internal/filedesc.Builder.Build(0x0, 0x0, 0xc000196600, 0x1a8, 0x200, 0x1, 0x1, 0x6a1680, 0xc0001062d0, 0x6a3300, ...)
        /go/pkg/mod/google.golang.org/protobuf@v1.20.0/internal/filedesc/build.go:103 +0xb0
google.golang.org/protobuf/internal/impl.legacyLoadFileDesc(0x8253e0, 0x12f, 0x12f, 0x12f, 0xc0001262a0)
        /go/pkg/mod/google.golang.org/protobuf@v1.20.0/internal/impl/legacy_file.go:62 +0x227
google.golang.org/protobuf/internal/impl.LegacyLoadEnumDesc(0x6a7d40, 0x615fc0, 0xc000126298, 0x7f3c41aef328)
        /go/pkg/mod/google.golang.org/protobuf@v1.20.0/internal/impl/legacy_enum.go:137 +0x3a9
google.golang.org/protobuf/internal/impl.(*ExtensionInfo).initFromLegacy(0x83a220)
        /go/pkg/mod/google.golang.org/protobuf@v1.20.0/internal/impl/legacy_extension.go:100 +0x715
google.golang.org/protobuf/internal/impl.(*ExtensionInfo).lazyInitSlow(0x83a220)
        /go/pkg/mod/google.golang.org/protobuf@v1.20.0/internal/impl/extension.go:134 +0x26e
google.golang.org/protobuf/internal/impl.(*ExtensionInfo).TypeDescriptor(0x83a220, 0xc000106c30, 0xc00008de68)
        /go/pkg/mod/google.golang.org/protobuf@v1.20.0/internal/impl/extension.go:112 +0x51
google.golang.org/protobuf/reflect/protoregistry.(*Types).RegisterExtension(0xc0001062d0, 0x6a5ec0, 0x83a220, 0x0, 0x0)
        /go/pkg/mod/google.golang.org/protobuf@v1.20.0/reflect/protoregistry/registry.go:454 +0x81
github.com/golang/protobuf/proto.RegisterExtension(...)
        /go/pkg/mod/github.com/golang/protobuf@v1.4.0-rc.3/proto/registry.go:285
google.golang.org/genproto/googleapis/api/annotations.init.4()
        /go/pkg/mod/google.golang.org/genproto@v0.0.0-20200305110556-506484158171/googleapis/api/annotations/field_behavior.pb.go:96 +0x7a
exit status 2

This line seems to be causing it:
proto.RegisterExtension(E_FieldBehavior)

Ref: https://github.com/googleapis/go-genproto/blob/master/googleapis/api/annotations/field_behavior.pb.go#L96
Anything else we should know about your project / environment?
This is causing the grpc-gateway project generators to lock up at generation time. It is not causing this simple deadlock panic, it seems to be blocking somehow. I'm still investigating, see https://github.com/grpc-ecosystem/grpc-gateway/issues/1158.

Thanks for the bug report. Without looking into it deeply, it seems like a reentrant deadlock issue where the legacy wrapper code is calling itself with the legacy lock already held.

The problem is that creating the ExtensionDescriptor for a legacy ExtensionDesc  can call into the global registry to resolve types.
Either we need to add another layer of lazy initialization to legacy ExtensionDescs or we can revive https://go-review.googlesource.com/c/protobuf/+/204804 to trigger lazy init outside the registry lock being held. I think I'd rather do the latter, because it'll take a fair bit of additional complexity to add even more layers of lazy init.

Thanks for the bug report! Until we tag a release with the fix (probably Monday), you can work around the problem by depending on google.golang.org/protobuf v1.20.1-0.20200305173516-13e7f145cc57.

source: gharchive/issue

authors: dsnet johanbrandhorst neild

repo: golang/protobuf

license_source: bigquery


text:
proto.Merge != proto.Marshal, proto.Unmarshal

This isn't a blocking issue for me but results from my developing familiarity with the golang protobuf SDK and a solution I'm toying with. In this solution, the clients succeeds by marshaling the dynamicpb.Message onto the wire and shipping this to the server; I don't need to be able to convert the dynamicpb.Message into ComplexRequest.
I am curious as to why this doesn't work.
If this appears curious to you too, I'm motivated to help pursue it.
If not, please feel free to just close it.
What version of protobuf and what language are you using?
go version
go version go1.14 linux/amd64

protoc --version
libprotoc 3.12.3

go.mod:
module complex

go 1.14

require (
	github.com/golang/protobuf v1.4.2
	google.golang.org/grpc v1.30.0
	google.golang.org/protobuf v1.25.0
)

What did you do?
syntax = "proto3";

package examples;

option go_package = "complex/protos";

service ComplexService {
    rpc add(ComplexRequest) returns (ComplexResponse);
    rpc sub(ComplexRequest) returns (ComplexResponse);
    rpc mul(ComplexRequest) returns (ComplexResponse);
    rpc div(ComplexRequest) returns (ComplexResponse);
}

message ComplexRequest {
    Complex a = 1;
    Complex b = 2;
}

message ComplexResponse {
    Complex result = 1;
    string error = 2;
}

message Complex {
    float real = 1;
    float imag = 2;
}

and:
protoc \
--proto_path=./protos \
--descriptor_set_out=./protos/descriptor.pb \
--go_out=plugins=grpc,module=[[PROJECT]]:. \
protos/complex.proto

and (with apologies for the big slab of code):
package main

import (
	"context"
	"flag"
	"io/ioutil"
	"log"

	pb "complex/protos"

	"google.golang.org/protobuf/proto"
	"google.golang.org/protobuf/reflect/protodesc"
	"google.golang.org/protobuf/reflect/protoreflect"
	"google.golang.org/protobuf/types/descriptorpb"
	"google.golang.org/protobuf/types/dynamicpb"
)

var (
	descriptorFile = flag.String("descriptor_file", "", "Descriptor filename")
)

func main() {

	flag.Parse()
	// Open the descriptor
	log.Println(*descriptorFile)

	fds := &descriptorpb.FileDescriptorSet{}
	{
		b, _ := ioutil.ReadFile(*descriptorFile)
		proto.Unmarshal(b, fds)
	}

	files, _ := protodesc.NewFiles(fds)
	d, _ := files.FindDescriptorByName(protoreflect.FullName("examples.ComplexService"))
	s, ok := d.(protoreflect.ServiceDescriptor)
	if !ok {
		log.Fatal("Unable to assert into ServiceDescriptor")
	}

	md := s.Methods().ByName(protoreflect.Name("add"))

	// Create dynamic message from service's input method
	i := md.Input()
	src := dynamicpb.NewMessage(i) // == examples.ComplexRequest

	{
		fd := i.Fields().ByName(protoreflect.Name("a"))
		if fd.Kind() != protoreflect.MessageKind {
			log.Fatal("Expect `a` to be a Message of type Complex")
		}
		a := fd.Message()
		m := dynamicpb.NewMessage(a)
		{
			fd := a.Fields().ByName(protoreflect.Name("real"))
			m.Set(fd, protoreflect.ValueOfFloat32(39))
		}

		{
			fd := a.Fields().ByName(protoreflect.Name("imag"))
			m.Set(fd, protoreflect.ValueOfFloat32(3))
		}
		// m := pb.Complex{Real: 39, Imag: 3}
		x := m.ProtoReflect()
		v := protoreflect.ValueOfMessage(x)
		src.Set(fd, v)
	}
	{
		fd := i.Fields().ByName(protoreflect.Name("b"))
		m := pb.Complex{Real: 39, Imag: 3}
		x := m.ProtoReflect()
		v := protoreflect.ValueOfMessage(x)
		src.Set(fd, v)
	}

	dst := &pb.ComplexRequest{}

This:

	proto.Merge(dst, src)

panics:
panic: descriptor mismatch

goroutine 1 [running]:
google.golang.org/protobuf/proto.Merge(0xc16140, 0xc000035e80, 0xc16c60, 0xc000035e00)
	/home/dazwilkin/go/pkg/mod/google.golang.org/protobuf@v1.25.0/proto/merge.go:34 +0x470
main.main()

Here: https://github.com/protocolbuffers/protobuf-go/blob/3f7a61f89bb6813f89d981d1870ed68da0b3c3f1/proto/merge.go#L34
The Fullname() values match but elsewhere the Descriptor() values disagree.
But, the described equivalent (albeit without proto.UnmarshalOptions{Merge:true}):
https://github.com/protocolbuffers/protobuf-go/blob/v1.25.0/proto/merge.go#L25
	{
		b, err := proto.Marshal(src)
		if err != nil {
			log.Fatal(err)
		}

		if err := proto.Unmarshal(b, dst); err != nil {
			log.Fatal(err)
		}
	}

Succeeds:
2020/06/30 12:26:53 result:{real:1512 imag:234}

What did you expect to see?
Success to be 'equivalent' Marshal (of dynamicpb) followed by Unmarshal (into examples.ComplexRequest).
What did you see instead?
Merge panics.
Anything else we should know about your project / environment?
The src and dst structs are rather deep and so it's not immediately obvious where the discrepancy arises (perhaps a good next step for me?)
If I output the objects, they appear (!?) to match:
log.Printf("[dst] %+v", dst.ProtoReflect().Descriptor())
log.Printf("[src] %+v", src.ProtoReflect().Descriptor())

yields:
2020/06/30 12:34:11 [dst] MessageDescriptor{
	Syntax:   proto3
	FullName: examples.ComplexRequest
	Fields: [{
		Name:        a
		Number:      1
		Cardinality: optional
		Kind:        message
		HasJSONName: true
		JSONName:    "a"
		HasPresence: true
		Message:     examples.Complex
	}, {
		Name:        b
		Number:      2
		Cardinality: optional
		Kind:        message
		HasJSONName: true
		JSONName:    "b"
		HasPresence: true
		Message:     examples.Complex
	}]
}
2020/06/30 12:34:11 [src] MessageDescriptor{
	Syntax:   proto3
	FullName: examples.ComplexRequest
	Fields: [{
		Name:        a
		Number:      1
		Cardinality: optional
		Kind:        message
		HasJSONName: true
		JSONName:    "a"
		HasPresence: true
		Message:     examples.Complex
	}, {
		Name:        b
		Number:      2
		Cardinality: optional
		Kind:        message
		HasJSONName: true
		JSONName:    "b"
		HasPresence: true
		Message:     examples.Complex
	}]
}

I wonder whether part of my issue is that ComplexRequest contains a nested Message[Descriptor|Type] of Complex?

Determining whether two descriptors are "identical" is challenging. The logic in proto.Merge simply checks for equality on the descriptor using the == operator (i.e., they must be the exact same descriptor). Expanding this to handle looser definitions leads to a nest of potential issues since we now need to define what "equal" descriptors mean:

Do we simply check the full name? what if they match, but the rest of the descriptor doesn't? This is still a type error.
Do we walk through the descriptor contents and verify that it matches? Do we only check information at a shallow level within the current descriptor? Do we also descend recursively into referenced sub-types? How are cycles in the type-graph handled?
What information do we need to be equal? What about field attributes that don't affect its memory representation like whether a repeated field is packed? What about options?
If we do recurse through everything, how do we prevent O(n^2) behavior recursing through the entire type descriptor at every level of the message value? Do we now add a type-cache of descriptors that we know to be equal?

Answering these is hard and any answer is likely to have significant performance implications, weird correctness edge-cases, or both.
It's probably easier (and faster) to just marshal the source message and unmarshal the bytes into the destination message.

You're awesome.
Thanks very much for taking the time (again) to help me understand this.

Before you replied, I tried github.com/go-test/deep
Somewhat (!?) interestingly, (in this case) dstD.Base.L0.ParentFile.L1.[Enums|Messages|Extensions|Services] are all nil
Whereas srcD.Base.L0.ParentFile.L1.[Enums|Messages|Extensions|Services] are all []
Recursively.
2020/06/30 13:27:59 Base.L0.ParentFile.L1.Enums.List: <nil slice> != []
2020/06/30 13:27:59 Base.L0.ParentFile.L1.Messages.List.slice[0].Base.L0.ParentFile.L1.Enums.List: <nil slice> != []
2020/06/30 13:27:59 Base.L0.ParentFile.L1.Messages.List.slice[0].Base.L0.ParentFile.L1.Messages.List.slice[0].Base.L0.ParentFile.L1.Enums.List: <nil slice> != []
2020/06/30 13:27:59 Base.L0.ParentFile.L1.Messages.List.slice[0].Base.L0.ParentFile.L1.Messages.List.slice[0].Base.L0.ParentFile.L1.Messages.List.slice[0].Base.L0.ParentFile.L1.Enums.List: <nil slice> != []
2020/06/30 13:27:59 Base.L0.ParentFile.L1.Messages.List.slice[0].Base.L0.ParentFile.L1.Messages.List.slice[0].Base.L0.ParentFile.L1.Messages.List.slice[0].Base.L0.ParentFile.L1.Messages.List.slice[0].Base.L0.ParentFile.L1.Enums.List: <nil slice> != []
2020/06/30 13:27:59 Base.L0.ParentFile.L1.Messages.List.slice[0].Base.L0.ParentFile.L1.Messages.List.slice[0].Base.L0.ParentFile.L1.Messages.List.slice[0].Base.L0.ParentFile.L1.Messages.List.slice[0].Base.L0.ParentFile.L1.Messages.List.slice[0].Base.L0.ParentFile.L1.Enums.List: <nil slice> != []
2020/06/30 13:27:59 Base.L0.ParentFile.L1.Messages.List.slice[0].Base.L0.ParentFile.L1.Messages.List.slice[0].Base.L0.ParentFile.L1.Messages.List.slice[0].Base.L0.ParentFile.L1.Messages.List.slice[0].Base.L0.ParentFile.L1.Messages.List.slice[0].Base.L0.ParentFile.L1.Messages.List.slice[0].Base.L0.ParentFile.L1.Enums.List: <nil slice> != []
2020/06/30 13:27:59 Base.L0.ParentFile.L1.Messages.List.slice[0].Base.L0.ParentFile.L1.Messages.List.slice[0].Base.L0.ParentFile.L1.Messages.List.slice[0].Base.L0.ParentFile.L1.Messages.List.slice[0].Base.L0.ParentFile.L1.Messages.List.slice[0].Base.L0.ParentFile.L1.Messages.List.slice[0].Base.L0.ParentFile.L1.Messages.List.slice[0].Base.L0.ParentFile.L1.Enums.List: <nil slice> != []
2020/06/30 13:27:59 Base.L0.ParentFile.L1.Messages.List.slice[0].Base.L0.ParentFile.L1.Messages.List.slice[0].Base.L0.ParentFile.L1.Messages.List.slice[0].Base.L0.ParentFile.L1.Messages.List.slice[0].Base.L0.ParentFile.L1.Messages.List.slice[0].Base.L0.ParentFile.L1.Messages.List.slice[0].Base.L0.ParentFile.L1.Messages.List.slice[0].Base.L0.ParentFile.L1.Messages.List.slice[0].Base.L0.ParentFile.L1.Enums.List: <nil slice> != []
2020/06/30 13:27:59 Base.L0.ParentFile.L1.Messages.List.slice[0].Base.L0.ParentFile.L1.Messages.List.slice[0].Base.L0.ParentFile.L1.Messages.List.slice[0].Base.L0.ParentFile.L1.Messages.List.slice[0].Base.L0.ParentFile.L1.Messages.List.slice[0].Base.L0.ParentFile.L1.Messages.List.slice[0].Base.L0.ParentFile.L1.Messages.List.slice[0].Base.L0.ParentFile.L1.Messages.List.slice[0].Base.L0.ParentFile.L1.Messages.List.slice[0].Base.L0.ParentFile.L1.Enums.List: <nil slice> != []

I dont find that surprising given that its just an implementation detail on the internal/filedesc types.

There may be a deeper reason for this and I defer (respectively) to your experience.
What puzzles me is that -- I suspect -- initialization differs (some structs are [] and some are nil) but should not.
In my (toy) proto:
syntax = "proto3";

package examples;

option go_package = "complex/protos";

service ComplexService {
    rpc add(ComplexRequest) returns (ComplexResponse);
    rpc sub(ComplexRequest) returns (ComplexResponse);
    rpc mul(ComplexRequest) returns (ComplexResponse);
    rpc div(ComplexRequest) returns (ComplexResponse);
}

message ComplexRequest {
    Complex a = 1;
    Complex b = 2;
}

message ComplexResponse {
    Complex result = 1;
    string error = 2;
}

message Complex {
    float real = 1;
    float imag = 2;
}

There are:

Type
Number
srcD
dstD
Diff

Enums
0
[] (length:0)
nil
⟵

Messages
3
[] (length:3)
[] (length:3)

Extensions
0
[] (length:0)
nil
⟵

Services
1
[] (length:1)
[] (length:1)

Taking just a small slither of the structures:

Name
Type

srcD
dynamicpb.NewMessage(...).ProtoReflect().Descriptor()

dstD
examples.ComplexRequest{}.ProtoReflect().Descriptor()

srcD appears to always initialize fields to [] whereas a regular struct{} does not initialize fields (nil).
This breaks the equality test that is a precursor of proto.Merge
Propose:
internal.filedesc should not make([]X, 0, ...)

As stated earlier, the difference between a nil slice and an empty, but non-nil slice is an implementation detail of internal/protodesc.
The Merge logic uses the == operator of descriptors. The descriptor types are pointers to internal types. The == operator in Go does not descend into pointers.

Closing this as infeasible and/or working as intended:

It's "infeasible" due to the technical complexities described in https://github.com/golang/protobuf/issues/1163#issuecomment-652020747. The current logic of Merge is not particularly complicated, being around 100 LOC. Supporting this feature would grow that complexity by an order of magnitude.
There's a reasonable workaround by simply marshaling the message and unmarshaling it again.

authors: DazWilkin dsnet


text:
Web Crawler "bug"

On the web crawler solution. Line 72. The last loop expects to receive a boolean from the done channel in order when goroutines are not guaranteed to return in a specific order.
We can't guarantee that the first done will come from the first goroutine dispatched in the previous loop.
Edit: made a PR but didn't know I could only contribute through Gerrit, sorry.
(https://github.com/golang/tour/pull/257)
https://github.com/golang/tour/blob/master/solutions/webcrawler.go#L72

@dnavas77 did you manage to submit the patch on Gerrit?
By the way, I noticed there's also a off-by-one issue in the %v/%v strings.
A simpler alternative to https://github.com/dnavas77/tour/commit/4d6ae52251564d89abf1ff3b2f26d2ebcb5eb0a0 that also addresses this could be:
diff --git a/solutions/webcrawler.go b/solutions/webcrawler.go
index 89b86a8..372f519 100644
--- a/solutions/webcrawler.go
+++ b/solutions/webcrawler.go
@@ -59,17 +59,16 @@ func Crawl(url string, depth int, fetcher Fetcher) {
 		return
 	}
 	fmt.Printf("Found: %s %q\n", url, body)
-	done := make(chan bool)
+	done := make(chan string)
 	for i, u := range urls {
-		fmt.Printf("-> Crawling child %v/%v of %v : %v.\n", i, len(urls), url, u)
+		fmt.Printf("-> Crawling child %v/%v of %v : %v.\n", i+1, len(urls), url, u)
 		go func(url string) {
 			Crawl(url, depth-1, fetcher)
-			done <- true
+			done <- url
 		}(u)
 	}
-	for i, u := range urls {
-		fmt.Printf("<- [%v] %v/%v Waiting for child %v.\n", url, i, len(urls), u)
-		<-done
+	for i := range urls {
+		fmt.Printf("<- [%v] %v/%v Completed child %v.\n", url, i+1, len(urls), <-done)
 	}
 	fmt.Printf("<- Done with %v\n", url)
 }

Sent patch on Gerrit: https://go-review.googlesource.com/c/tour/+/313190
I noticed there was already an open pull request to fix the off-by-one issue: #839. Depending on which one is merged first merge conflicts could arise.

repo: golang/tour


text:
Link directs to article header image instead of article itself

Describe the bug
Upon adding a bookmark for a PCGamer article, Grimoire substitutes out the link to the direct source for the header image of the article instead. Clicking the bookmark just takes me to this image every time, instead of the actual link I pasted. This has only happened with this specific article so far: I tried with other PCG articles and they linked through fine. No idea what this one is doing differently to trigger this behaviour.
To Reproduce

Add Bookmark
Paste this link https://www.pcgamer.com/games/strategy/i-tracked-down-the-guy-who-gave-a-negative-review-to-battlezone-98-redux-after-playing-for-over-8-000-hours-and-came-away-convinced-he-was-right/
Link will immediately turn into a link for the header image instead. All other details will be correct, including the HTML breakdown of the originally provided link.
Click bookmarked link after saving.
Link will just lead to image.

Screenshots

Expected behavior
The original link I pasted is opened.

Digging into this issue, I have found the root cause: url-metadata package and its method of extracting schema.org micro-formatting attributes.
Even if the URL attribute of a <meta itemprop="url" ...> tag is scoped to an ImageObject, it will be assigned to the entire page. I have opened an issue on their repo: https://github.com/laurengarcia/url-metadata/issues/90

authors: Jacksaur gpoussel

repo: goniszewski/grimoire

license: MIT


text:
Azure Devops not available as Pull requester provider

I have SonarQube 8 installed and branch community plugin installed. I cant find azure devops in the list of pull request providers on SonarQube Configuration Dashboard. I can successfully run PR but can see it decorate vulnerabilities. Please assist.

This project har been merged into https://github.com/mc1arke/sonarqube-community-branch-plugin please open any issues there.


text:
Native Module cannot be null

Hi,
I get the following error when I try to import this library.

Did you link the library?

@is343 shouldn't have to in new react native versions, i think it's that it's missing a podspec

The podspec file is now included. This should now be fixed with #16.

authors: AnanasPie gaberoganlingumi is343

repo: goodatlas/react-native-audio-record


text:
Mediapipe lagging behind OpenCV video stream severely on Linux

Have I written custom code (as opposed to using a stock example script provided in MediaPipe)
Yes
OS Platform and Distribution
Arch Linux
Mobile device if the issue happens on mobile device
No response
Browser and version if the issue happens on browser
No response
Programming Language and version
Python
MediaPipe version
Latest
Bazel version
No response
Solution
Pose
Android Studio, NDK, SDK versions (if issue is related to building in Android environment)
No response
Xcode & Tulsi version (if issue is related to building for iOS)
No response
Describe the actual behavior
Mediapipe lags behind OpenCV up to 7 seconds behind on capable hardware
Describe the expected behaviour
Mediapipe stays constistenly with OpenCV
Standalone code/steps you may have used to try to get what you need
https://github.com/Crazypersonalph/nerftracker.git

Other info / Complete Logs
No response

I should add it was lagging behind with Cython

Can you provide reproducing code?

Hi @Crazypersonalph,
Could you please provide the code to reproduce the issue so that we can better understand it from our end?
Thank you!!

Got same energy when install same system from windows to Linux.But for me,with USB Camera,speed is unchanged. only get lagging behind when do it with ".mp4" video or rtsp.

Got same energy when install same system from windows to Linux.But for me,with USB Camera,speed is unchanged. only get lagging behind when do it with ".mp4" video or rtsp.

Problem seem to be related to opencv reading frame speed. Affecting not also rtsp but even in .mp4 file or .avi. should check hardware then network then opencv.

Hi @Crazypersonalph,
Sorry for the delay in responding. Could you please let us know if this issue is still ongoing or if it has been resolved on your end?
Thank you!!

Sorry about the absence of responses,
I am not actively working on the project concerning mediation anymore, so I do not think this issue applies to me anymore.
Kind Regards

authors: Crazypersonalph kuaashish matanox ueihghnurthnirt

repo: google-ai-edge/mediapipe


text:
Segmentation fault when running on RASPI4 w/ Coral

Is this example supposed to also run on RASPI 4 or am I just wasting my time?
Independent of the model used I get this error.
Loading model:  models/mobilenet/posenet_mobilenet_v1_075_481_641_quant_decoder_edgetpu.tflite
[1]    18593 segmentation fault  python3 anonymizer.py

Hello, this should works on the pi4, however we recently deprecated the edgetpu API and is actively workiong on a fix.
For now, please use my fork: https://github.com/Namburger/project-posenet
More details here:
https://github.com/google-coral/project-posenet/issues/42#issuecomment-738026058

@andrewtvuong I am able to run this command python3 pose_camera.py --res 480x360 without any error.
I don't see these lines on cmd:
Unable to init server: Could not connect: Connection refused
Unable to init server: Could not connect: Connection refused

Unable to init server: Could not connect: Connection refused
Unable to init server: Could not connect: Connection refused

I'm thinking this is due to me running the setup as headless. At the same time,  I am also seeing seg fault as @iCUE-Solutions and some other folks in related issues https://github.com/google-coral/project-posenet/issues/42#issuecomment-738026058

can you share output of following command:
python3 -c 'from pycoral.utils.edgetpu import get_runtime_version; print(get_runtime_version())'

python3 -c 'from pycoral.utils.edgetpu import get_runtime_version; print(get_runtime_version())'
produces
BuildLabel(COMPILER=6.3.0 20170516,DATE=redacted,TIME=redacted), RuntimeVersion(14)

Thanks
python3 simple_pose.py works well
python3 anonymizer.py

/home/pi/workspace/project-posenet/gstreamer.py:15: PyGIWarning: Gst was imported without specifying a version first. Use gi.require_version('Gst', '1.0') before import to ensure that the right version gets loaded.
from gi.repository import GLib, GObject, Gst, GstBase, GstVideo, Gtk
/home/pi/workspace/project-posenet/gstreamer.py:15: PyGIWarning: GstBase was imported without specifying a version first. Use gi.require_version('GstBase', '1.0') before import to ensure that the right version gets loaded.
from gi.repository import GLib, GObject, Gst, GstBase, GstVideo, Gtk
/home/pi/workspace/project-posenet/gstreamer.py:15: PyGIWarning: GstVideo was imported without specifying a version first. Use gi.require_version('GstVideo', '1.0') before import to ensure that the right version gets loaded.
from gi.repository import GLib, GObject, Gst, GstBase, GstVideo, Gtk
Unable to init server: Could not connect: Connection refused
Unable to init server: Could not connect: Connection refused
/home/pi/workspace/project-posenet/gstreamer.py:15: PyGIWarning: Gtk was imported without specifying a version first. Use gi.require_version('Gtk', '3.0') before import to ensure that the right version gets loaded.
from gi.repository import GLib, GObject, Gst, GstBase, GstVideo, Gtk
Loading model:  models/mobilenet/posenet_mobilenet_v1_075_481_641_quant_decoder_edgetpu.tflite
Gstreamer pipeline:  v4l2src device=/dev/video0 ! video/x-raw,width=640,height=480,framerate=30/1 ! decodebin ! videoflip video-direction=identity ! tee name=t
t. ! queue max-size-buffers=1 leaky=downstream ! videoconvert ! freezer name=freezer ! rsvgoverlay name=overlay
! videoconvert ! autovideosink
t. ! queue max-size-buffers=1 leaky=downstream ! videoconvert ! videoscale ! video/x-raw,width=641,height=480 ! videobox name=box autocrop=true
! video/x-raw,format=RGB,width=641,height=481 ! appsink name=appsink emit-signals=true max-buffers=1 drop=true
[1]    1325 segmentation fault  python3 anonymizer.py

python3 posenet_engine_test.py

Testing Accuracy for:  /home/pi/workspace/project-posenet/models/mobilenet/posenet_mobilenet_v1_075_353_481_quant_decoder_edgetpu.tflite
Parsing reference results for: /home/pi/workspace/project-posenet/test_data/posenet_mobilenet_v1_075_353_481_quant_decoder_edgetpu_reference.csv
Testing Accuracy for:  /home/pi/workspace/project-posenet/models/mobilenet/posenet_mobilenet_v1_075_481_641_quant_decoder_edgetpu.tflite
Parsing reference results for: /home/pi/workspace/project-posenet/test_data/posenet_mobilenet_v1_075_481_641_quant_decoder_edgetpu_reference.csv
Testing Accuracy for:  /home/pi/workspace/project-posenet/models/mobilenet/posenet_mobilenet_v1_075_721_1281_quant_decoder_edgetpu.tflite
Parsing reference results for: /home/pi/workspace/project-posenet/test_data/posenet_mobilenet_v1_075_721_1281_quant_decoder_edgetpu_reference.csv
F
FAIL: test_model_accuracy (main.PoseEngineAccuracyTest)
Traceback (most recent call last):
File "posenet_engine_test.py", line 52, in test_model_accuracy
model_keypoint.point[0], reference_keypoint.point[0], delta=pixel_delta)
AssertionError: 544.0 != 536.91327 within 4.0 delta (7.086729999999989 difference)

Ran 1 test in 3.234s
FAILED (failures=1)

python3 test_utils.py

F driver/usb/usb_driver.cc:857] transfer on tag 2 failed. Abort. Deadline exceeded: USB transfer error 2 [LibUsbDataOutCallback]
[1]    1552 abort      python3 test_utils.py

please check this: https://coral.ai/docs/notes/build-coral/#failed-to-load-delegate-from-libedgetpuso1  to tresolve ValueError: Failed to load delegate from libedgetpu.so.1

I am not having any segmentation issue with any script. I have python 3.7.3.
what is your
python version?
tflite_runtime version?
pycoral version?

Python               3.7.3
tflite-runtime     2.5.0.post1
pycoral               2.0.0

Hmm.. I have same config.. can you try without headless?

with monitor
`python3 pose_camera.py
/home/pi/workspace/project-posenet/gstreamer.py:15: PyGIWarning: Gst was imported without specifying a version first. Use gi.require_version('Gst', '1.0') before import to ensure that the right version gets loaded.
from gi.repository import GLib, GObject, Gst, GstBase, GstVideo, Gtk
/home/pi/workspace/project-posenet/gstreamer.py:15: PyGIWarning: GstBase was imported without specifying a version first. Use gi.require_version('GstBase', '1.0') before import to ensure that the right version gets loaded.
from gi.repository import GLib, GObject, Gst, GstBase, GstVideo, Gtk
/home/pi/workspace/project-posenet/gstreamer.py:15: PyGIWarning: GstVideo was imported without specifying a version first. Use gi.require_version('GstVideo', '1.0') before import to ensure that the right version gets loaded.
from gi.repository import GLib, GObject, Gst, GstBase, GstVideo, Gtk
Unable to init server: Could not connect: Connection refused
Unable to init server: Could not connect: Connection refused
/home/pi/workspace/project-posenet/gstreamer.py:15: PyGIWarning: Gtk was imported without specifying a version first. Use gi.require_version('Gtk', '3.0') before import to ensure that the right version gets loaded.
from gi.repository import GLib, GObject, Gst, GstBase, GstVideo, Gtk
Loading model:  models/mobilenet/posenet_mobilenet_v1_075_481_641_quant_decoder_edgetpu.tflite
Gstreamer pipeline:  v4l2src device=/dev/video0 ! video/x-raw,width=640,height=480,framerate=30/1 ! decodebin ! videoflip video-direction=identity ! tee name=t
t. ! queue max-size-buffers=1 leaky=downstream ! videoconvert ! freezer name=freezer ! rsvgoverlay name=overlay
! videoconvert ! autovideosink
t. ! queue max-size-buffers=1 leaky=downstream ! videoconvert ! videoscale ! video/x-raw,width=641,height=480 ! videobox name=box autocrop=true
! video/x-raw,format=RGB,width=641,height=481 ! appsink name=appsink emit-signals=true max-buffers=1 drop=true
Error: gst-resource-error-quark: GStreamer encountered a general resource error. (1): gstkmssink.c(1530): gst_kms_sink_show_frame (): /GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0/GstKMSSink:autovideosink0-actual-sink-kms:
drmModeSetPlane failed: Permission denied (-13)`

authors: Namburger andrewtvuong hjonnala iCUE-Solutions

repo: google-coral/project-posenet


text:
[Question] Empty string returned when using google/gemma-2-9b-it model of Together AI API

Hello,
I recently went through the agent_development.ipynb tutorial.
I used API_TYPE='together_ai', MODEL_NAME='google/gemma-2-9b-it' as recommended in the tutorial.
I noticed that during the runnable_simulation() process, LLM generates an empty string ('').
In the api response of together_ai, I found that result = response.choices[0].message.content returns an empty string ('').
Is there any way to fix this?
Thank you!

Hello!
In which context is the call to llm made? It could be that the call had terminators = ['\n'] and llm responded with a newline and was cut off?
Could you share more of the code you are running?

Thanks for your quick response!
I am currently running my_agent.py from agent_development.ipynb with colab.
First, I got warning message WARNING:concordia.associative_memory.formative_memories:Warning: Number of generated formative episodes (8) does not match number of formative ages (7). This is just a warning and probably not problematic.  when execute "Initialize the simulation" section as below.
runnable_simulation = scenarios.build_simulation(
    scenarios.SCENARIO_CONFIGS[SCEANRIO_NAME],
    model=model,
    embedder=embedder,
    measurements=measurements,
    focal_agent_module=agent_module,
    override_agent_model=call_limit_wrapper.CallLimitLanguageModel(model),
)

Thanks for your quick response!
I am currently running my_agent.py from agent_development.ipynb with colab.
First, I got warning message WARNING:concordia.associative_memory.formative_memories:Warning: Number of generated formative episodes (8) does not match number of formative ages (7). This is just a warning and probably not problematic.  when execute "Initialize the simulation" section as below.
runnable_simulation = scenarios.build_simulation(
    scenarios.SCENARIO_CONFIGS[SCEANRIO_NAME],
    model=model,
    embedder=embedder,
    measurements=measurements,
    focal_agent_module=agent_module,
    override_agent_model=call_limit_wrapper.CallLimitLanguageModel(model),
)

After that, during the running simulation with simulation_outcome, results_log = runnable_simulation(), the log shows only prefix such as agent's name although I use a language model. Below is a portion of the output log.
Rowan Cranberry's attempted action: Rowan Cranberry

Rowan Cranberry
Current state of conversation: Here is the conversation from the beginning:
Rowan Cranberry
Hunter Nutwood
Rowan Cranberry
GM context of action and chain of thought:
Instructions: This is a social science experiment. It is structured as a tabletop roleplaying game (like dungeons and dragons). You are the game master. You will describe the current situation to the participants in the experiment and then on the basis of what you tell them they will suggest actions for the character they control. Aside from you, each other participant controls just one character. You are the game master so you may control any non-player character. You will track the state of the world and keep it consistent as time passes in the simulation and the participants take actions and change things in their world. Remember that this is a serious social science experiment. It is not just a game. It need not be fun for the participants. Always use third-person limited perspective, even when speaking directly to the participants.

Conversation history: Here is the conversation from the beginning:
Rowan Cranberry
Hunter Nutwood
Rowan Cranberry

I think there should be an output generated based on the language model next to the agent name, but it doesn't generate any output as shown above!

Hi! What is most likely is that call_limit_wrapper.CallLimitLanguageModel has reached the limit of calls. You can simply disable it by doing removing this line:
override_agent_model=call_limit_wrapper.CallLimitLanguageModel(model)

Thank you for response!
Unfortunately, I tried removing the line override_agent_model=call_limit_wrapper.CallLimitLanguageModel(model), but I still have the same problem.
Therefore, I printed response.choices[0].message in language/together_ai.py, I founded that the response of llm sometimes generate only empty string such as below two lines.
role=<MessageRole.ASSISTANT: 'assistant'> content='\n\n' tool_calls=[]
role=<MessageRole.ASSISTANT: 'assistant'> content='' tool_calls=[]
role=<MessageRole.ASSISTANT: 'assistant'> content='' tool_calls=[]

Is the issue that it always generates empty strings or that it sometimes generates empty strings?  Do you ever see normal responses from this LLM?

@jzleibo Thank you for the response!
I am not sure, but I think It always generates empty strings, because I do not see normal responses from the LLM in output logs and HTML logs (below image is an example image of HTML log's conversation scene).

I also print the response.choices[0].message  in together_ai.py  as above. I can see below printed results.

role=<MessageRole.ASSISTANT: 'assistant'> content='' tool_calls=[]
role=<MessageRole.ASSISTANT: 'assistant'> content=' ' tool_calls=[]
role=<MessageRole.ASSISTANT: 'assistant'> content='[16 Sep 1895 00:00:00] [observation] The cobblestone streets of Fruitville echoed with the clatter of hooves and the rumble of carts as the market awoke. Underneath colorful awnings, merchants proudly presented their bountiful harvests, their voices a chorus of greetings and bartering. Hunter Nutwood is trying to buy some fruit from Blaise Windwillow. They are negotiating a price. Hunter Nutwood can sell the fruit for 5 coins back in her home town.\n[16 Sep 1895 00:10:00] [observation] Hunter Nutwood is ready to make an offer.\n\n\n' tool_calls=[]
role=<MessageRole.ASSISTANT: 'assistant'> content='' tool_calls=[]
role=<MessageRole.ASSISTANT: 'assistant'> content='' tool_calls=[]
role=<MessageRole.ASSISTANT: 'assistant'> content='' tool_calls=[]
role=<MessageRole.ASSISTANT: 'assistant'> content='' tool_calls=[]
role=<MessageRole.ASSISTANT: 'assistant'> content='[16 Sep 1895 00:00:00] The cobblestone streets of Fruitville echoed with the clatter of hooves and the rumble of carts as the market awoke. Underneath colorful awnings, merchants proudly presented their bountiful harvests, their voices a chorus of greetings and bartering. Blaise Windwillow is  trying to sell some fruit. He is negotiating a price with Hunter Nutwood. It costs Blaise Windwillow 2 coin to buy the fruit from the farm.\n[16 Sep 1895 00:10:00] Blaise Windwillow has to accept or reject the offer.\n[16 Sep 1895 00:10:00] Hunter Nutwood proposed 2 coins. \n\n' tool_calls=[]
role=<MessageRole.ASSISTANT: 'assistant'> content='' tool_calls=[]
role=<MessageRole.ASSISTANT: 'assistant'> content='' tool_calls=[]

Hey! We reproduced the issue and looking into it

Oh, I see! Thanks!

Any updates on this? @vezhnick

The gemma-2-9b-it model from together.ai is still broken, that's why it is returning empty strings. We are in contact with someone from together.ai now, and trying to get them to fix it as quickly as possible. In the meantime, this should not be blocking for work on the Concordia contest since the issue is specific to the 9b model. We recommend using gemma-2-27b-it for now, until together.ai fixes the 9b model.
For now, the plan is still to use gemma-2-9b-it for the final evaluation. But if the current issue drags on much longer then we will have to re-evaluate that. If we do end up switching away from that model then the most likely alternative will be gemma-2-27b-it.

We are updating the contest Slack with the latest as this goes on:
https://join.slack.com/t/neuripsconcor-zjd8720/shared_invite/zt-2pvn5a6k3-rL6QUqxD1uuYy6gIGNbByw

repo: google-deepmind/concordia


text:
Can't open viewer with the command"python -m mujoco.viewer" ; Error info:libGL error: MESA-LOADER...

Hi,
I'm looking for some help with  the GUI of Mujoco
System Info
Ubuntu 22.04
NVIDIA driver 525
Kernel 6.0.0-1010-oem #10-Ubuntu
Error message
libGL error: MESA-LOADER: failed to open iris: /usr/lib/dri/iris_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/x86_64-linux-gnu/dri:$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)
libGL error: failed to load driver: iris
libGL error: MESA-LOADER: failed to open iris: /usr/lib/dri/iris_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/x86_64-linux-gnu/dri:$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)
libGL error: failed to load driver: iris
libGL error: MESA-LOADER: failed to open swrast: /usr/lib/dri/swrast_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/x86_64-linux-gnu/dri:$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)
libGL error: failed to load driver: swrast
/home/jeffery/.local/lib/python3.10/site-packages/glfw/init.py:912: GLFWError: (65543) b'GLX: Failed to create context: BadValue (integer parameter out of range for operation)'
warnings.warn(message, GLFWError)
ERROR: could not create window
Press Enter to exit ...
Additional
I successfully opened it at the beginning.
But then I have accidentally run "apt upgrade"
Then occur this problem, the Graphic driver problem(nvidia-smi not showing correctly).
But I have already used the --purge command to remove all graphic driver and reinstall it.
The NVIDIA display driver is functional now
But this Problem with the Mujoco viewer still.
Please anyone know how to solve it?
I have read some relevant posts online regarding libGL error, however, they were not helpful.
Thank you !

The problem is solved !!
It is because the apt update makes the soft links of lib break.
use ll command to check the file
strings libstdc++.so.6 | grep GLIBCXX_3.4.30  (if broke can't find it )
locate libstdc++.so.6  (locate workable file )
select one (should be the /usr/lib/x86_64-linux-gnu one )
using the str command above  to grep again, the fine is here!
rm the problematic file in  dictionary
ln -s the dictionary of good file to the problematic dichotomy .
(create a softlink to the correct location )
Anyway, it its roughly the solution of my case

@cidxb could you please explain this fix in simple terms? I am currently facing the same issues. I am also on ubuntu 22.04

@cidxb could you please explain this fix in simple terms? I am currently facing the same issues. I am also on Ubuntu 22.04
It is basically a broken file soft link problem, which means the file you want is not here really, but an indicator of where it is, but this link broke, and then the program is unable to find it. SO WE WANT TO REBUILD THE LINK.

use ll command to check the file(in this case, ll iris_dri.so)  ###Check the file link
use command strings libstdc++.so.6 | grep GLIBCXX_3.4.30   ###find this missing .so library
use the command locate libstdc++.so.6  ###To find where in your system has this file/libray
remove the old/problematic file which has been reported as `No such file or directory
use the command  ln -s  to link the dictionary of the good file to the problematic dictionary.  ###create a soft link to the correct location )

@cidxb I am sorry I am extremely new to linux so this might sound a dumb question I followed your instructions up till 3, and getting this when I try the locate libstdc++.so.6
I don't understand step 4 and 5, how am I supposed to know which is the problematic file? (i would have tried the same file but I don't see that in the options given)

What is your original error trance back? You can check it.  That should state what file went wrong, you delete it, and follow the step 4 and 5 to create a new file that can work.  It is very simple.

@cidxb
this is the snippet of the error

So from this I am inferring that I should use rm usr/lib/dri/iris_dri.so
Then in the 5th step I should use ln -s to the correct location, but which would be the correct location?
this is the output I get when I try locate libstdc++.so.6

Is it this /usr/lib/x86_64-linux-gnu/libstdc++.so.6 ?
(I am sorry I'm doing low effort stuff here by not running this stuff and checking it, cause I have some important changes saved and re-configuring ubuntu again would be a pain (I know this cause I screwed up once before and was set back 3 days behind))

感谢大家的帮助，我终于弄清楚了。 如果有人还有其他疑问，可以查看此stackoverflow 帖子

Solve my problem. Thx

authors: CRLqinliang cidxb coder-rakeshpaul

repo: google-deepmind/mujoco


text:
can't use the trained check points to retrain on different data set

Hi,
I trained Bert_base model on squad1.0 and got some check points. I have another dataset which is in squad format and I want to retrain the model using this data set as train_file, but use the latest check point that I got from training on squad1.0.  Is it possible to do like this? because when I do this, the model is directly restoring the provided check points and it is straight away giving me the results. I am not seeing any updated weights  here as I am not getting any new check point files.
Are there any configurations I am missing to do this transfer learning?

You should probably increase the number of training steps. When you use the same number and tell the model to load the last checkpoint which has been trained that exact amount of steps, you leave your model with no further steps to train.

repo: google-research/bert


text:
How is the number of BERT model parameters calculated?

I‘m a bit confused about the 110M parameters. How is it calculated?

通常情况 transformer 模型有很多参数需要训练。譬如 BERT BASE 模型: L=12, H=768, A=12, 需要训练的模型参数总数是 12 * 768 * 12 = 110M
https://zhuanlan.zhihu.com/p/51413773

我对110M参数感到有点困惑。它是如何计算的？
通常情况变压器模型有很多参数需要训练。譬如BERT BASE模型：L = 12，H = 768，A = 12，需要训练的模型参数总数是12 * 768 * 12 = 110M

https://zhuanlan.zhihu.com/p/51413773

我对110M参数感到有点困惑。它是如何计算的？

通常情况变压器模型有很多参数需要训练。譬如BERT BASE模型：L = 12，H = 768，A = 12，需要训练的模型参数总数是12 * 768 * 12 = 110M
https://zhuanlan.zhihu.com/p/51413773

12 * 768 * 12 = 110M  ？

here is one layer Transformer

#  parameters: 10152448 | 10152448 |   |   |
-- | -- | -- | -- | --
weight name:   encoder.src_word_emb.weight | size: | [5395, 512] | count: | 2762240
weight name:   encoder.position_enc.weight | size: | [33, 512] | count: | 16896
weight name:   encoder.layer_stack.0.slf_attn.w_qs.weight | size: | [512, 512] | count: | 262144
weight name:   encoder.layer_stack.0.slf_attn.w_qs.bias | size: | [512] | count: | 512
weight name:   encoder.layer_stack.0.slf_attn.w_ks.weight | size: | [512, 512] | count: | 262144
weight name:   encoder.layer_stack.0.slf_attn.w_ks.bias | size: | [512] | count: | 512
weight name:   encoder.layer_stack.0.slf_attn.w_vs.weight | size: | [512, 512] | count: | 262144
weight name:   encoder.layer_stack.0.slf_attn.w_vs.bias | size: | [512] | count: | 512
weight name:   encoder.layer_stack.0.slf_attn.layer_norm.weight | size: | [512] | count: | 512
weight name:   encoder.layer_stack.0.slf_attn.layer_norm.bias | size: | [512] | count: | 512
weight name:   encoder.layer_stack.0.slf_attn.fc.weight | size: | [512, 512] | count: | 262144
weight name:   encoder.layer_stack.0.slf_attn.fc.bias | size: | [512] | count: | 512
weight name:   encoder.layer_stack.0.pos_ffn.w_1.weight | size: | [2048, 512, 1] | count: | 1048576
weight name:   encoder.layer_stack.0.pos_ffn.w_1.bias | size: | [2048] | count: | 2048
weight name:   encoder.layer_stack.0.pos_ffn.w_2.weight | size: | [512, 2048, 1] | count: | 1048576
weight name:   encoder.layer_stack.0.pos_ffn.w_2.bias | size: | [512] | count: | 512
weight name:   encoder.layer_stack.0.pos_ffn.layer_norm.weight | size: | [512] | count: | 512
weight name:   encoder.layer_stack.0.pos_ffn.layer_norm.bias | size: | [512] | count: | 512
weight name:   decoder.tgt_word_emb.weight | size: | [5395, 512] | count: | 2762240
weight name:   decoder.position_enc.weight | size: | [33, 512] | count: | 16896
weight name:   decoder.layer_stack.0.slf_attn.w_qs.weight | size: | [512, 512] | count: | 262144
weight name:   decoder.layer_stack.0.slf_attn.w_qs.bias | size: | [512] | count: | 512
weight name:   decoder.layer_stack.0.slf_attn.w_ks.weight | size: | [512, 512] | count: | 262144
weight name:   decoder.layer_stack.0.slf_attn.w_ks.bias | size: | [512] | count: | 512
weight name:   decoder.layer_stack.0.slf_attn.w_vs.weight | size: | [512, 512] | count: | 262144
weight name:   decoder.layer_stack.0.slf_attn.w_vs.bias | size: | [512] | count: | 512
weight name:   decoder.layer_stack.0.slf_attn.layer_norm.weight | size: | [512] | count: | 512
weight name:   decoder.layer_stack.0.slf_attn.layer_norm.bias | size: | [512] | count: | 512
weight name:   decoder.layer_stack.0.slf_attn.fc.weight | size: | [512, 512] | count: | 262144
weight name:   decoder.layer_stack.0.slf_attn.fc.bias | size: | [512] | count: | 512
weight name:   decoder.layer_stack.0.enc_attn.w_qs.weight | size: | [512, 512] | count: | 262144
weight name:   decoder.layer_stack.0.enc_attn.w_qs.bias | size: | [512] | count: | 512
weight name:   decoder.layer_stack.0.enc_attn.w_ks.weight | size: | [512, 512] | count: | 262144
weight name:   decoder.layer_stack.0.enc_attn.w_ks.bias | size: | [512] | count: | 512
weight name:   decoder.layer_stack.0.enc_attn.w_vs.weight | size: | [512, 512] | count: | 262144
weight name:   decoder.layer_stack.0.enc_attn.w_vs.bias | size: | [512] | count: | 512
weight name:   decoder.layer_stack.0.enc_attn.layer_norm.weight | size: | [512] | count: | 512
weight name:   decoder.layer_stack.0.enc_attn.layer_norm.bias | size: | [512] | count: | 512
weight name:   decoder.layer_stack.0.enc_attn.fc.weight | size: | [512, 512] | count: | 262144
weight name:   decoder.layer_stack.0.enc_attn.fc.bias | size: | [512] | count: | 512
weight name:   decoder.layer_stack.0.pos_ffn.w_1.weight | size: | [2048, 512, 1] | count: | 1048576
weight name:   decoder.layer_stack.0.pos_ffn.w_1.bias | size: | [2048] | count: | 2048
weight name:   decoder.layer_stack.0.pos_ffn.w_2.weight | size: | [512, 2048, 1] | count: | 1048576
weight name:   decoder.layer_stack.0.pos_ffn.w_2.bias | size: | [512] | count: | 512
weight name:   decoder.layer_stack.0.pos_ffn.layer_norm.weight | size: | [512] | count: | 512
weight name:   decoder.layer_stack.0.pos_ffn.layer_norm.bias | size: | [512] | count: | 512
weight name: tgt_word_prj.weight | size: | [5395, 512] | count: | 2762240
--
vocab size=5395 seq len=33, embedding=512, you cand replace it with BERT

bert-base-uncased, 110M parameters

Bert-base-uncased | Key | Shape | Count |
-- | -- | -- | -- | --
Embedding | embeddings.word_embeddings.weight | [30522,   768] | 23,440,896 | 23,837,184
  | embeddings.position_embeddings.weight | [512,   768] | 393,216 |
  | embeddings.token_type_embeddings.weight | [2,   768] | 1,536 |
  | embeddings.LayerNorm.weight | [768] | 768 |
  | embeddings.LayerNorm.bias | [768] | 768 |
Transformer   * 12 | encoder.layer.0.attention.self.query.weight | [768,   768] | 589,824 | 7,087,872  * 12 =   85,054,464
  | encoder.layer.0.attention.self.query.bias | [768] | 768 |
  | encoder.layer.0.attention.self.key.weight | [768,   768] | 589,824 |
  | encoder.layer.0.attention.self.key.bias | [768] | 768 |
  | encoder.layer.0.attention.self.value.weight | [768,   768] | 589,824 |
  | encoder.layer.0.attention.self.value.bias | [768] | 768 |
  | encoder.layer.0.attention.output.dense.weight | [768,   768] | 589,824 |
  | encoder.layer.0.attention.output.dense.bias | [768] | 768 |
  | encoder.layer.0.attention.output.LayerNorm.weight | [768] | 768 |
  | encoder.layer.0.attention.output.LayerNorm.bias | [768] | 768 |
  | encoder.layer.0.intermediate.dense.weight | [3072,   768] | 2,359,296 |
  | encoder.layer.0.intermediate.dense.bias | [3072] | 3072 |
  | encoder.layer.0.output.dense.weight | [768,   3072] | 2,359,296 |
  | encoder.layer.0.output.dense.bias | [768] | 768 |
  | encoder.layer.0.output.LayerNorm.weight | [768] | 768 |
  | encoder.layer.0.output.LayerNorm.bias | [768] | 768 |
Pooler | pooler.dense.weight | [768,   768] | 589,824 | 590,592
  | pooler.dense.bias | [768] | 768 |
  |   |   |   | 109,482,240

bert-large-uncased, 340M parameters

Bert-large-uncased
Key
Shape
Count
Count   All

Embedding
embeddings.word_embeddings.weight
[30522,   1024]
31,254,528
31,782,912

embeddings.position_embeddings.weight
[512,   1024]
524,288

embeddings.token_type_embeddings.weight
[2,   1024]
2,048

embeddings.LayerNorm.weight
[1024]
1,024

embeddings.LayerNorm.bias
[1024]
1,024

Transformer   * 24
encoder.layer.0.attention.self.query.weight
[1024,   1024]
1,048,576
12,592,128 * 24 = 302,211,072

encoder.layer.0.attention.self.query.bias
[1024]
1,024

encoder.layer.0.attention.self.key.weight
[1024,   1024]
1,048,576

encoder.layer.0.attention.self.key.bias
[1024]
1,024

encoder.layer.0.attention.self.value.weight
[1024,   1024]
1,048,576

encoder.layer.0.attention.self.value.bias
[1024]
1,024

encoder.layer.0.attention.output.dense.weight
[1024,   1024]
1,048,576

encoder.layer.0.attention.output.dense.bias
[1024]
1,024

encoder.layer.0.attention.output.LayerNorm.weight
[1024]
1,024

encoder.layer.0.attention.output.LayerNorm.bias
[1024]
1,024

encoder.layer.0.intermediate.dense.weight
[4096,   1024]
4,194,304

encoder.layer.0.intermediate.dense.bias
[4096]
4,096

encoder.layer.0.output.dense.weight
[1024,   4096]
4,194,304

encoder.layer.0.output.dense.bias
[1024]
1,024

encoder.layer.0.output.LayerNorm.weight
[1024]
1,024

encoder.layer.0.output.LayerNorm.bias
[1024]
1,024

Pooler
pooler.dense.weight
[1024,   1024]
1,048,576
1,049,600

pooler.dense.bias
[1024]
1,024

335,043,584

So does the attention head number get included?

I think the attention head number is chosen such that H / A = 64 for all models, where H is the hidden size and A is the number of attention heads

Thanks @liuqiangict
So the query, key and value weights are shared across all the attention heads of the same layer?

这是来自QQ邮箱的假期自动回复邮件。

您好，我最近正在休假中，无法亲自回复您的邮件。我将在假期结束后，尽快给您回复。

Thanks @liuqiangict So the query, key and value weights are shared across all the attention heads of the same layer?

They are different. If they are shared, weight size can be reduced by the number of heads.

这是来自QQ邮箱的假期自动回复邮件。

您好，我最近正在休假中，无法亲自回复您的邮件。我将在假期结束后，尽快给您回复。

So does the attention head number get included?

Yes, It does. Actually, for each head, the attention layer project input (which is [768]) to a small size (which is [64]). There are 12 heads in attention layer. We can see that 64 * 12 = 768. The implementation in transformer do not have 12 head explicitly, otherwise, 12 head was put together which is one linear layer (768 * 768). For the code, actually, they are the same.

authors: DongqiShen amineabdaoui aslicedbread careyee hezq06 jong-won-lee laohur liuqiangict oyvistee superdu12138


text:
Addition of 1. in the gating blocks

Why is there an additional of 1 to v in the gating blocks?
An example:
https://github.com/google-research/maxim/blob/ae458a6f2be191b3b6a619feac5739ccc3ae6975/maxim/models/maxim.py#L149
@vztu

It's like adding a skip connection: x = u * v + u. Actually doesn't matter that much in terms of performance.

Ah. Didn't even notice that. Pardon my stupidity.

authors: sayakpaul vztu

repo: google-research/maxim


text:
Original animal points for Motion Retargeting to new robot

Hello. This is a really good work.
Could you share the original animal points? This in order to retarget them to a new robot and train for it. In addition, do you have some documentation about the retargeting process?

Thanks. Converted and added the retarget_motion scripts here
https://github.com/google-research/motion_imitation/tree/master/retarget_motion
https://github.com/google-research/motion_imitation/pull/22

I found the motion capture dataset of https://github.com/sebastianstarke/AI4Animation, e.g. D1_007_KAN01_001.bvh, contains only 21 points, but your code here https://github.com/google-research/motion_imitation/tree/master/retarget_motion/data contains 27 joint positions. Did you modify the skeleton of the original motion captures?

authors: YeeCY edgarcamilocamacho erwincoumans


text:
TensorFlow 2.10 causes trouble!

Hi - many thanks for releasing this code! Tensorflow 2.10 is now (since about September 1st 2022) the default version for a pip install but running in a CUDA 11.2.2 CUDNN 8.1 environment you'll see error messages characterised by "Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered". The solution in the context of this code is to downgrade to TF 2.9.2 - I suggest you change the requirements.txt file to reflect the specific version.

I should add this is on Ubuntu 20.04.

Thanks for the heads up! Would you mind pushing a CL with that change to requirements.txt?

Hmm - this is more complicated than I'd expected! The version of TensorFlow needs to match the versions of the CUDA toolkit and cuDNN, so my using Ubuntu 20.04, CUDA 11.2.2 and cuDNN 8.1 happens to sit nicely with TensorFlow 9.2.2, but later CUDA toolkits will call for later TensorFlow versions (the full story is here: https://www.tensorflow.org/install/source#gpu_support_3) so mandating a version of TensorFlow in requirements.txt might actually be doing a disservice to people building in other environments. Short of providing a dockerfile or Docker image I'm not sure how we'd make this plain sailing!

You gotta laugh - at render time after 5000 cycles there's a runtime error saying that version of Tensorflow needs cuDNN 8.2.4. Watch this space :-)

Installing cuDNN 8.2.4 seems to fix this - with hindsight doing a "conda install..." of tensorflow would have made more sense as it deals with the dependencies more elegantly than pip.

Hi - many thanks for releasing this code! Tensorflow 2.10 is now (since about September 1st 2022) the default version for a pip install but running in a CUDA 11.2.2 CUDNN 8.1 environment you'll see error messages characterised by "Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered". The solution in the context of this code is to downgrade to TF 2.9.2 - I suggest you change the requirements.txt file to reflect the specific version.

Downgrading tensorflow to 2.9.2 solved this for me. Thanks.

Hi, I am using Ubuntu 22.04 and have the same error: Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered
I have Cuda 11.7 installed.
How can I solve this?

Hi William - you need to force the version of tensorflow that plays nicely with the version of the CUDA toolkit and CUDNN that you have , which  the link above should help with, but we do now know that CUDA 11.2.2, CUDNN 8.1 and TF 2.9.2 will work.  You might get away with downgrading tensorflow from 2.10 to 2.9.2 as I did:
pip3 install --upgrade tensorflow==2.9.2
...but that doesn't work I'd recommend downgrading your CUDA and going from there. If you find a combo that works with 11.7, please share!

Same issue here, with Ubuntu 22.04.1. Tensorflow Here the combination that worked on my system:

tensorflow 2.9.2 (installed with pip)
cuda 11.5.1 (installed with sudo apt install nvidia-cuda-toolkit)
cudnn 8.2.4.15 (apparently for cuda 11.4, installed with sudo apt install nvidia-cudnn)
nvidia-driver-510 (installed with sudo apt install nvidia-driver-515 after installing cuda and cudnn)
reboot

Hi MikePelton, your suggestions did work in my environment too. Thank you.
I created a new environment in Anaconda with Python 3.8.
Before installing tensorflow package I installed following packages:

nvidia-pyindex (pip install nvidia-pyindex executed in the new environment);
nvidia-tensorrt 7.2.3.4 (pip install nvidia-tensorrt==7.2.3.4 executed in the new environment);
cudatoolkit 11.2 and cudnn 8.1.0 (conda install -c conda-forge cudatoolkit=11.2 cudnn=8.1.0 executed in the new environment);
tensorflow 2.9.2 (pip install tensorflow==2.9.2 executed in the new environment).

With tensorflow 2.10.0 I was getting the error message:
Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered.
Ciao

Hi MikePelton, your suggestions did work in my environment too. Thank you. [...]
@MaxBDSGH may I ask what OS/version are you on?

Hi fantauzzi, I'm on Ubuntu 22.04.1 LTS.

Hi MikePelton, your suggestions did work in my environment too. Thank you. [...]
@MaxBDSGH may I ask what OS/version are you on?

Installing cuDNN 8.2.4 seems to fix this - with hindsight doing a "conda install..." of tensorflow would have made more sense as it deals with the dependencies more elegantly than pip.

You @were very elegant by saying "elegantly" :-)
Some beliefs I'd like to share:

conda considers pip installations as "read-only", just recommends to install them at last and even export them (yaml)
pip otherwise ignores conda installs which I might lead to redundant if not broken/impossible complete installations, forcing users to create separate environments.
Almost all mainstream frameworks employs conda packages.
Although I'm a DS/ML/DL researcher coding Python, as many, I consider my self a "user" which needs to quickly and easily setup mixed frameworks, until the day I will be able to use only one, e.g. RAPIDS.
By the way RAPIDS which has to do with nvidia, uses conda, as numba, pytorch, spacy and sklearn do.   I hope one day Tensorflow will officially support conda and and nvidia would do the same to things like tensorrt.

I met this problem in tensorflow2.14.0
Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered
Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered
Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered
CUDA_VERSION: 11.8
CUDNN_VERSION: 8.9.4
OS: ubuntu 23.04

I met this problem in tensorflow2.14.0 Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered
CUDA_VERSION: 11.8 CUDNN_VERSION: 8.9.4 OS: ubuntu 23.04

use version 2.13  instead , i use tensorflow:2.13.0-gpu-jupyter container from docker hub and it works.( on 2.14 i have same problem)

authors: MaxBDSGH MikePelton Romeo-CC William-vds fantauzzi jonbarron jsdevtom mauriciocramos netl0tuz

repo: google-research/multinerf


text:
[idea for task] Query bias quantification

Adding various prompts which are likely to appear in text written by expert can sometimes improve the performance of the model. A recent example is that code models get better when you prompt them with "I'm an expert Python programmer" or math problems are solved  with higher accuracy if you add "I am a math tutor". Vision-language model have this effect too, e.g., by adding "unreal engine" to query.
While it can be argued whether it is a bug or feature, in any case I think it is worth quantification. I see it as a (preferably diverse) set of tasks + set of prompts with positive/negative bias (e.g., "I am a math tutor" vs. "I am just starting learning it"). The "query bias score" then can be defined, for example, as a difference between highest and lowest performance of the model on the task.

Relevant: https://twitter.com/npew/status/1525900849888866307

https://twitter.com/arankomatsuzaki/status/1529278580189908993

repo: google/BIG-bench