nextcloud / nextcloud/server

Log flooded with "dns_get_record(): A temporary server error occurred"

Open
#34,205 33 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

1. to develop 25-feedback bug high needs review
Dominant language
PHP
Stars
36.9k
Forks
5.2k
Avg merge
2d 3h
Merged PRs (30d)
713

Description

{
  "reqId": "LP2ucI4M8WYxaHQ9AfD7",
  "level": 3,
  "time": "2022-09-23T04:07:01+00:00",
  "remoteAddr": "…",
  "user": "…",
  "app": "PHP",
  "method": "POST",
  "url": "/ocs/v2.php/references/extract",
  "message": "dns_get_record(): A temporary server error occurred. at /var/www/cloud.nextcloud.com/nextcloud/lib/private/Http/Client/DnsPinMiddleware.php#83",
  "userAgent": "Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0",
  "version": "25.0.0.13",
  "exception": {
    "Exception": "Error",
    "Message": "dns_get_record(): A temporary server error occurred. at /var/www/cloud.nextcloud.com/nextcloud/lib/private/Http/Client/DnsPinMiddleware.php#83",
    "Code": 0,
    "Trace": [
      {
        "function": "onError",
        "class": "OC\\Log\\ErrorHandler",
        "type": "::",
        "args": [
          2,
          "dns_get_record(): A temporary server error occurred.",
          "/var/www/cloud.nextcloud.com/nextcloud/lib/private/Http/Client/DnsPinMiddleware.php",
          83
        ]
      },
      {
        "file": "/var/www/cloud.nextcloud.com/nextcloud/lib/private/Http/Client/DnsPinMiddleware.php",
        "line": 83,
        "function": "dns_get_record",
        "args": [
          "…",
          16
        ]
      },
      {
        "file": "/var/www/cloud.nextcloud.com/nextcloud/lib/private/Http/Client/DnsPinMiddleware.php",
        "line": 128,
        "function": "dnsResolve",
        "class": "OC\\Http\\Client\\DnsPinMiddleware",
        "type": "->",
        "args": [
          "…",
          1
        ]
      },
      {
        "file": "/var/www/cloud.nextcloud.com/nextcloud/apps/collectives/vendor/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php",
        "line": 35,
        "function": "OC\\Http\\Client\\{closure}",
        "class": "OC\\Http\\Client\\DnsPinMiddleware",
        "type": "->",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/cloud.nextcloud.com/nextcloud/apps/collectives/vendor/guzzlehttp/guzzle/src/Middleware.php",
        "line": 31,
        "function": "__invoke",
        "class": "GuzzleHttp\\PrepareBodyMiddleware",
        "type": "->",
        "args": [
          "*** sensitive parameters replaced ***",
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/cloud.nextcloud.com/nextcloud/apps/collectives/vendor/guzzlehttp/guzzle/src/RedirectMiddleware.php",
        "line": 71,
        "function": "GuzzleHttp\\{closure}",
        "class": "GuzzleHttp\\Middleware",
        "type": "::",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/cloud.nextcloud.com/nextcloud/apps/collectives/vendor/guzzlehttp/guzzle/src/Middleware.php",
        "line": 63,
        "function": "__invoke",
        "class": "GuzzleHttp\\RedirectMiddleware",
        "type": "->",
        "args": [
          "*** sensitive parameters replaced ***",
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/cloud.nextcloud.com/nextcloud/apps/collectives/vendor/guzzlehttp/guzzle/src/HandlerStack.php",
        "line": 75,
        "function": "GuzzleHttp\\{closure}",
        "class": "GuzzleHttp\\Middleware",
        "type": "::",
        "args": [
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/cloud.nextcloud.com/nextcloud/apps/collectives/vendor/guzzlehttp/guzzle/src/Client.php",
        "line": 331,
        "function": "__invoke",
        "class": "GuzzleHttp\\HandlerStack",
        "type": "->",
        "args": [
          "*** sensitive parameters replaced ***",
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/cloud.nextcloud.com/nextcloud/apps/collectives/vendor/guzzlehttp/guzzle/src/Client.php",
        "line": 168,
        "function": "transfer",
        "class": "GuzzleHttp\\Client",
        "type": "->",
        "args": [
          "*** sensitive parameters replaced ***",
          "*** sensitive parameters replaced ***"
        ]
      },
      {
        "file": "/var/www/cloud.nextcloud.com/nextcloud/apps/collectives/vendor/guzzlehttp/guzzle/src/Client.php",
        "line": 187,
        "function": "requestAsync",
        "class": "GuzzleHttp\\Client",
        "type": "->",
        "args": [
          "get",
          {
            "__class__": "GuzzleHttp\\Psr7\\Uri"
          },
          [
            "/var/www/data/files_external/rootcerts.crt",
            10,
            [
              {
                "__class__": "Closure"
              }
            ],
            [
              false
            ],
            true,
            "And 6 more entries, set log level to debug to see all entries"
          ]
        ]
      },
      {
        "file": "/var/www/cloud.nextcloud.com/nextcloud/lib/private/Http/Client/Client.php",
        "line": 218,
        "function": "request",
        "class": "GuzzleHttp\\Client",
        "type": "->",
        "args": [
          "get",
          "…",
          [
            "/var/www/data/files_external/rootcerts.crt",
            10,
            [
              {
                "__class__": "Closure"
              }
            ],
            [
              false
            ],
            [
              "Nextcloud Server Crawler",
              "gzip"
            ],
            "And 1 more entries, set log level to debug to see all entries"
          ]
        ]
      },
      {
        "file": "/var/www/cloud.nextcloud.com/nextcloud/lib/private/Collaboration/Reference/LinkReferenceProvider.php",
        "line": 107,
        "function": "get",
        "class": "OC\\Http\\Client\\Client",
        "type": "->",
        "args": [
          "…",
          [
            10
          ]
        ]
      },
      {
        "file": "/var/www/cloud.nextcloud.com/nextcloud/lib/private/Collaboration/Reference/LinkReferenceProvider.php",
        "line": 86,
        "function": "fetchReference",
        "class": "OC\\Collaboration\\Reference\\LinkReferenceProvider",
        "type": "->",
        "args": [
          {
            "__class__": "OC\\Collaboration\\Reference\\Reference"
          }
        ]
      },
      {
        "file": "/var/www/cloud.nextcloud.com/nextcloud/lib/private/Collaboration/Reference/ReferenceManager.php",
        "line": 99,
        "function": "resolveReference",
        "class": "OC\\Collaboration\\Reference\\LinkReferenceProvider",
        "type": "->",
        "args": [
          "…"
        ]
      },
      {
        "file": "/var/www/cloud.nextcloud.com/nextcloud/core/Controller/ReferenceApiController.php",
        "line": 52,
        "function": "resolveReference",
        "class": "OC\\Collaboration\\Reference\\ReferenceManager",
        "type": "->",
        "args": [
          "…"
        ]
      },
      {
        "file": "/var/www/cloud.nextcloud.com/nextcloud/lib/private/AppFramework/Http/Dispatcher.php",
        "line": 225,
        "function": "extract",
        "class": "OC\\Core\\Controller\\ReferenceApiController",
        "type": "->",
        "args": [
          "…",
          true,
          1
        ]
      },
      {
        "file": "/var/www/cloud.nextcloud.com/nextcloud/lib/private/AppFramework/Http/Dispatcher.php",
        "line": 133,
        "function": "executeController",
        "class": "OC\\AppFramework\\Http\\Dispatcher",
        "type": "->",
        "args": [
          {
            "__class__": "OC\\Core\\Controller\\ReferenceApiController"
          },
          "extract"
        ]
      },
      {
        "file": "/var/www/cloud.nextcloud.com/nextcloud/lib/private/AppFramework/App.php",
        "line": 172,
        "function": "dispatch",
        "class": "OC\\AppFramework\\Http\\Dispatcher",
        "type": "->",
        "args": [
          {
            "__class__": "OC\\Core\\Controller\\ReferenceApiController"
          },
          "extract"
        ]
      },
      {
        "file": "/var/www/cloud.nextcloud.com/nextcloud/lib/private/Route/Router.php",
        "line": 298,
        "function": "main",
        "class": "OC\\AppFramework\\App",
        "type": "::",
        "args": [
          "OC\\Core\\Controller\\ReferenceApiController",
          "extract",
          {
            "__class__": "OC\\AppFramework\\DependencyInjection\\DIContainer"
          },
          [
            "ocs.core.ReferenceApi.extract"
          ]
        ]
      },
      {
        "file": "/var/www/cloud.nextcloud.com/nextcloud/ocs/v1.php",
        "line": 62,
        "function": "match",
        "class": "OC\\Route\\Router",
        "type": "->",
        "args": [
          "/ocsapp/references/extract"
        ]
      },
      {
        "file": "/var/www/cloud.nextcloud.com/nextcloud/ocs/v2.php",
        "line": 23,
        "args": [
          "/var/www/cloud.nextcloud.com/nextcloud/ocs/v1.php"
        ],
        "function": "require_once"
      }
    ],
    "File": "/var/www/cloud.nextcloud.com/nextcloud/lib/private/Log/ErrorHandler.php",
    "Line": 92,
    "CustomMessage": "--"
  },
  "id": "632d345f730a4"
}

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with lib/private/Http/Client/DnsPinMiddleware.php at line 83 and trace the dnsResolve call from the stack. Then follow LinkReferenceProvider.php and ReferenceApiController.php to understand how the request reaches DNS resolution. Done means the reported temporary DNS condition no longer floods the log while reference extraction behavior remains covered by appropriate tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
php
Domain
backend, networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.