You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/iot-edge/offline-capabilities.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -105,7 +105,7 @@ One way to create this trust relationship is described in detail in the followin
105
105
106
106
## Specify DNS servers
107
107
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.
Copy file name to clipboardExpand all lines: articles/iot-edge/troubleshoot.md
+32-16Lines changed: 32 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -207,12 +207,14 @@ Example edgeAgent logs:
207
207
2017-11-28 18:46:49 [INF] - Edge agent attempting to connect to IoT Hub via AMQP over WebSocket...
208
208
```
209
209
210
-
### Root cause
210
+
**Root cause**
211
+
211
212
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).
212
213
213
214
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.
214
215
215
-
### Resolution
216
+
**Resolution**
217
+
216
218
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.
217
219
218
220
## IoT Edge hub fails to start
@@ -226,19 +228,23 @@ One or more errors occurred.
226
228
Error starting userland proxy: Bind for 0.0.0.0:443 failed: port is already allocated\"}\n)
227
229
```
228
230
229
-
### Root cause
231
+
**Root cause**
232
+
230
233
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.
231
234
232
-
### Resolution
235
+
**Resolution**
236
+
233
237
Find and stop the process that is using port 443. This process is usually a web server.
234
238
235
239
## IoT Edge agent can't access a module's image (403)
236
240
A container fails to run, and the edgeAgent logs show a 403 error.
237
241
238
-
### Root cause
242
+
**Root cause**
243
+
239
244
The Iot Edge agent doesn't have permissions to access a module's image.
240
245
241
-
### Resolution
246
+
**Resolution**
247
+
242
248
Make sure that your registry credentials are correctly specified in your deployment manifest
243
249
244
250
## 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:
249
255
Error parsing user input data: invalid hostname. Hostname cannot be empty or greater than 64 characters
250
256
```
251
257
252
-
### Root cause
258
+
**Root cause**
259
+
253
260
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.
254
261
255
-
### Resolution
262
+
**Resolution**
263
+
256
264
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.
257
265
258
266
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
279
287
## Stability issues on resource constrained devices
280
288
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.
281
289
282
-
### Root cause
290
+
**Root cause**
291
+
283
292
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.
284
293
285
-
### Resolution
294
+
**Resolution**
295
+
286
296
For the IoT Edge hub, set an environment variable **OptimizeForPerformance** to **false**. There are two ways to do this:
287
297
288
298
In the UI:
@@ -311,10 +321,12 @@ In the deployment manifest:
311
321
## Can't get the IoT Edge daemon logs on Windows
312
322
If you get an EventLogException when using `Get-WinEvent` on Windows, check your registry entries.
313
323
314
-
### Root cause
324
+
**Root cause**
325
+
315
326
The `Get-WinEvent` PowerShell command relies on a registry entry to be present to find logs by a specific `ProviderName`.
316
327
317
-
### Resolution
328
+
**Resolution**
329
+
318
330
Set a registry entry forthe IoT Edge daemon. Create a **iotedge.reg** file with the following content, and importin to the Windows Registry by double-clicking it or using the `reg import iotedge.reg` command:
319
331
320
332
```
@@ -334,10 +346,12 @@ A custom IoT Edge module fails to send a message to the edgeHub with a 404 `Modu
334
346
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 )
335
347
```
336
348
337
-
### Root cause
349
+
**Root cause**
350
+
338
351
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.
339
352
340
-
### Resolution
353
+
**Resolution**
354
+
341
355
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).
342
356
343
357
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
358
372
359
373
The device has trouble starting modules defined in the deployment. Only the edgeAgent is running but continually reporting 'empty config file...'.
360
374
361
-
### Potential root cause
375
+
**Root cause**
376
+
362
377
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.
363
378
364
-
### Resolution
379
+
**Resolution**
380
+
365
381
366
382
**Option 1: Set DNS server in container engine settings**
0 commit comments