Skip to content

Commit a060954

Browse files
authored
Merge pull request #88892 from kgremban/sept17-duplicateheaders
Reformat duplicate headers
2 parents 7fd262a + 346ecc5 commit a060954

File tree

2 files changed

+33
-17
lines changed

2 files changed

+33
-17
lines changed

articles/iot-edge/offline-capabilities.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ One way to create this trust relationship is described in detail in the followin
105105

106106
## Specify DNS servers
107107

108-
To improve robustness, it is highly recommended you specify the DNS server addresses used in your environment. See two options to [set the DNS server in the troubleshooting article](troubleshoot.md#resolution-7).
108+
To improve robustness, it is highly recommended you specify the DNS server addresses used in your environment. To set your DNS server for IoT Edge, see the resolution for [Edge Agent module continually reports 'empty config file' and no modules start on device](troubleshoot.md#edge-agent-module-continually-reports-empty-config-file-and-no-modules-start-on-the-device) in the troubleshooting article.
109109

110110
## Optional offline settings
111111

articles/iot-edge/troubleshoot.md

Lines changed: 32 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -207,12 +207,14 @@ Example edgeAgent logs:
207207
2017-11-28 18:46:49 [INF] - Edge agent attempting to connect to IoT Hub via AMQP over WebSocket...
208208
```
209209

210-
### Root cause
210+
**Root cause**
211+
211212
A networking configuration on the host network is preventing the IoT Edge agent from reaching the network. The agent attempts to connect over AMQP (port 5671) first. If the connection fails, it tries WebSockets (port 443).
212213

213214
The IoT Edge runtime sets up a network for each of the modules to communicate on. On Linux, this network is a bridge network. On Windows, it uses NAT. This issue is more common on Windows devices using Windows containers that use the NAT network.
214215

215-
### Resolution
216+
**Resolution**
217+
216218
Ensure that there is a route to the internet for the IP addresses assigned to this bridge/NAT network. Sometimes a VPN configuration on the host overrides the IoT Edge network.
217219

218220
## IoT Edge hub fails to start
@@ -226,19 +228,23 @@ One or more errors occurred.
226228
Error starting userland proxy: Bind for 0.0.0.0:443 failed: port is already allocated\"}\n)
227229
```
228230

229-
### Root cause
231+
**Root cause**
232+
230233
Some other process on the host machine has bound port 443. The IoT Edge hub maps ports 5671 and 443 for use in gateway scenarios. This port mapping fails if another process has already bound this port.
231234

232-
### Resolution
235+
**Resolution**
236+
233237
Find and stop the process that is using port 443. This process is usually a web server.
234238

235239
## IoT Edge agent can't access a module's image (403)
236240
A container fails to run, and the edgeAgent logs show a 403 error.
237241

238-
### Root cause
242+
**Root cause**
243+
239244
The Iot Edge agent doesn't have permissions to access a module's image.
240245

241-
### Resolution
246+
**Resolution**
247+
242248
Make sure that your registry credentials are correctly specified in your deployment manifest
243249

244250
## IoT Edge security daemon fails with an invalid hostname
@@ -249,10 +255,12 @@ The command `sudo journalctl -u iotedge` fails and prints the following message:
249255
Error parsing user input data: invalid hostname. Hostname cannot be empty or greater than 64 characters
250256
```
251257

252-
### Root cause
258+
**Root cause**
259+
253260
The IoT Edge runtime can only support hostnames that are shorter than 64 characters. Physical machines usually don't have long hostnames, but the issue is more common on a virtual machine. The automatically generated hostnames for Windows virtual machines hosted in Azure, in particular, tend to be long.
254261

255-
### Resolution
262+
**Resolution**
263+
256264
When you see this error, you can resolve it by configuring the DNS name of your virtual machine, and then setting the DNS name as the hostname in the setup command.
257265

258266
1. In the Azure portal, navigate to the overview page of your virtual machine.
@@ -279,10 +287,12 @@ When you see this error, you can resolve it by configuring the DNS name of your
279287
## Stability issues on resource constrained devices
280288
You may encounter stability problems on constrained devices like the Raspberry Pi, especially when used as a gateway. Symptoms include out of memory exceptions in the edge hub module, downstream devices cannot connect or the device stops sending telemetry messages after a few hours.
281289

282-
### Root cause
290+
**Root cause**
291+
283292
The IoT Edge hub, which is part of the IoT Edge runtime, is optimized for performance by default and attempts to allocate large chunks of memory. This optimization is not ideal for constrained edge devices and can cause stability problems.
284293

285-
### Resolution
294+
**Resolution**
295+
286296
For the IoT Edge hub, set an environment variable **OptimizeForPerformance** to **false**. There are two ways to do this:
287297

288298
In the UI:
@@ -311,10 +321,12 @@ In the deployment manifest:
311321
## Can't get the IoT Edge daemon logs on Windows
312322
If you get an EventLogException when using `Get-WinEvent` on Windows, check your registry entries.
313323
314-
### Root cause
324+
**Root cause**
325+
315326
The `Get-WinEvent` PowerShell command relies on a registry entry to be present to find logs by a specific `ProviderName`.
316327
317-
### Resolution
328+
**Resolution**
329+
318330
Set a registry entry for the IoT Edge daemon. Create a **iotedge.reg** file with the following content, and import in to the Windows Registry by double-clicking it or using the `reg import iotedge.reg` command:
319331
320332
```
@@ -334,10 +346,12 @@ A custom IoT Edge module fails to send a message to the edgeHub with a 404 `Modu
334346
Error: Time:Thu Jun 4 19:44:58 2018 File:/usr/sdk/src/c/provisioning_client/adapters/hsm_client_http_edge.c Func:on_edge_hsm_http_recv Line:364 executing HTTP request fails, status=404, response_buffer={"message":"Module not found"}u, 04 )
335347
```
336348
337-
### Root cause
349+
**Root cause**
350+
338351
The IoT Edge daemon enforces process identification for all modules connecting to the edgeHub for security reasons. It verifies that all messages being sent by a module come from the main process ID of the module. If a message is being sent by a module from a different process ID than initially established, it will reject the message with a 404 error message.
339352
340-
### Resolution
353+
**Resolution**
354+
341355
As of version 1.0.7, all module processes are authorized to connect. If upgrading to 1.0.7 isn't possible, complete the following steps. For more information, see the [1.0.7 release changelog](https://github.com/Azure/iotedge/blob/master/CHANGELOG.md#iotedged-1).
342356
343357
Make sure that the same process ID is always used by the custom IoT Edge module to send messages to the edgeHub. For instance, make sure to `ENTRYPOINT` instead of `CMD` command in your Docker file, since `CMD` will lead to one process ID for the module and another process ID for the bash command running the main program whereas `ENTRYPOINT` will lead to a single process ID.
@@ -358,10 +372,12 @@ While IoT Edge provides enhanced configuration for securing Azure IoT Edge runti
358372
359373
The device has trouble starting modules defined in the deployment. Only the edgeAgent is running but continually reporting 'empty config file...'.
360374
361-
### Potential root cause
375+
**Root cause**
376+
362377
By default, IoT Edge starts modules in their own isolated container network. The device may be having trouble with DNS name resolution within this private network.
363378
364-
### Resolution
379+
**Resolution**
380+
365381
366382
**Option 1: Set DNS server in container engine settings**
367383

0 commit comments

Comments
 (0)