flutter_map icon indicating copy to clipboard operation
flutter_map copied to clipboard

[BUG] Own tileserver on port other than 80 not usable

Open fodor99 opened this issue 1 year ago • 1 comments

What is the bug?

We built our own tile server to not put huge load on OSM servers.

Unfortunatelly our Sysadmin could set this service on our domain using some higher port (eg 8005).

As I set TileLayerOptions.urlTemplate to our server (eg https://mytileserver.com:8005/tile/{z}/{x}/{y}.png) the library use some of the coordinates (x or y) while trying to download the tile from port x or y.

======== Exception caught by image resource service ================================================
The following SocketException was thrown resolving an image codec:
Connection timed out (OS Error: Connection timed out, errno = 110), address = mytileserver.com, port = 36692

What is the expected behaviour?

I think, if we change the URL, it still should work, even on port other than 80.

How can we reproduce this issue?

Change url and tiles are not loaded.

children: <Widget>[
                  TileLayerWidget(
                    options: TileLayerOptions(
                      urlTemplate:
                          'https://somedomain:8005/tile/{z}/{x}/{y}.png',
                      subdomains: ['a', 'b', 'c'],
                      userAgentPackageName: 'dev.somedemo',
                    ),
                  ),
                ],

Do you have a potential solution?

I will debug the part of URL loading, as I found the problem I try to fix it and send pull request.

Can you provide any other information?

======== Exception caught by image resource service ================================================
The following SocketException was thrown resolving an image codec:
Connection timed out (OS Error: Connection timed out, errno = 110), address = mytileserver.com, port = 36692

When the exception was thrown, this was the stack: 
#0      _NativeSocket.startConnect (dart:io-patch/socket_patch.dart:682:35)
#1      _RawSocket.startConnect (dart:io-patch/socket_patch.dart:1817:26)
#2      RawSocket.startConnect (dart:io-patch/socket_patch.dart:27:23)
#3      RawSecureSocket.startConnect (dart:io/secure_socket.dart:299:22)
#4      SecureSocket.startConnect (dart:io/secure_socket.dart:77:28)
#5      _ConnectionTarget.connect (dart:_http/http_impl.dart:2449:26)
#6      _HttpClient._getConnection.connect (dart:_http/http_impl.dart:2867:12)
#7      _HttpClient._getConnection (dart:_http/http_impl.dart:2872:12)
#8      _HttpClient._openUrl (dart:_http/http_impl.dart:2727:12)
#9      _HttpClient.getUrl (dart:_http/http_impl.dart:2596:48)
#10     FMNetworkNoRetryImageProvider._loadAsync (package:flutter_map/src/layer/tile_layer/tile_provider/network_no_retry_image_provider.dart:64:58)
#11     FMNetworkNoRetryImageProvider.load (package:flutter_map/src/layer/tile_layer/tile_provider/network_no_retry_image_provider.dart:37:14)
#12     ImageProvider.resolveStreamForKey.<anonymous closure> (package:flutter/src/painting/image_provider.dart:488:13)
#13     ImageCache.putIfAbsent (package:flutter/src/painting/image_cache.dart:379:22)
#14     ImageProvider.resolveStreamForKey (package:flutter/src/painting/image_provider.dart:486:81)
#15     ImageProvider.resolve.<anonymous closure> (package:flutter/src/painting/image_provider.dart:333:9)
#16     ImageProvider._createErrorHandlerAndKey.<anonymous closure> (package:flutter/src/painting/image_provider.dart:448:24)
#17     SynchronousFuture.then (package:flutter/src/foundation/synchronous_future.dart:41:35)
#18     ImageProvider._createErrorHandlerAndKey (package:flutter/src/painting/image_provider.dart:445:9)
#19     ImageProvider.resolve (package:flutter/src/painting/image_provider.dart:330:5)
#20     Tile.loadTileImage (package:flutter_map/src/layer/tile_layer/tile.dart:48:36)
#21     _TileLayerState._update (package:flutter_map/src/layer/tile_layer/tile_layer.dart:420:15)
#22     _TileLayerState._setView (package:flutter_map/src/layer/tile_layer/tile_layer.dart:269:7)
#23     _TileLayerState._resetView (package:flutter_map/src/layer/tile_layer/tile_layer.dart:240:5)
#24     _TileLayerState.initState (package:flutter_map/src/layer/tile_layer/tile_layer.dart:78:5)
#25     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4942:57)
#26     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4781:5)
#27     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3817:16)
#28     MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6350:36)
#29     MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6362:32)
...     Normal element mounting (7 frames)
#36     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3817:16)
#37     MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6350:36)
#38     MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6362:32)
...     Normal element mounting (55 frames)
#93     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3817:16)
#94     Element.updateChild (package:flutter/src/widgets/framework.dart:3551:18)
#95     _LayoutBuilderElement._layout.layoutCallback (package:flutter/src/widgets/layout_builder.dart:135:18)
#96     BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2597:19)
#97     _LayoutBuilderElement._layout (package:flutter/src/widgets/layout_builder.dart:153:12)
#98     RenderObject.invokeLayoutCallback.<anonymous closure> (package:flutter/src/rendering/object.dart:2025:59)
#99     PipelineOwner._enableMutationsToDirtySubtrees (package:flutter/src/rendering/object.dart:918:15)
#100    RenderObject.invokeLayoutCallback (package:flutter/src/rendering/object.dart:2025:14)
#101    RenderConstrainedLayoutBuilder.rebuildIfNecessary (package:flutter/src/widgets/layout_builder.dart:227:7)
#102    _RenderLayoutBuilder.performLayout (package:flutter/src/widgets/layout_builder.dart:316:5)
#103    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#104    RenderConstrainedBox.performLayout (package:flutter/src/rendering/proxy_box.dart:277:14)
#105    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#106    RenderPadding.performLayout (package:flutter/src/rendering/shifted_box.dart:233:12)
#107    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#108    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#109    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#110    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#111    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#112    RenderSliverMultiBoxAdaptor.insertAndLayoutChild (package:flutter/src/rendering/sliver_multi_box_adaptor.dart:487:13)
#113    RenderSliverList.performLayout.advance (package:flutter/src/rendering/sliver_list.dart:239:19)
#114    RenderSliverList.performLayout (package:flutter/src/rendering/sliver_list.dart:281:12)
#115    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#116    RenderSliverEdgeInsetsPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:137:12)
#117    RenderSliverPadding.performLayout (package:flutter/src/rendering/sliver_padding.dart:371:11)
#118    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#119    RenderViewportBase.layoutChildSequence (package:flutter/src/rendering/viewport.dart:510:13)
#120    RenderViewport._attemptLayout (package:flutter/src/rendering/viewport.dart:1580:12)
#121    RenderViewport.performLayout (package:flutter/src/rendering/viewport.dart:1489:20)
#122    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#123    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#124    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#125    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#126    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#127    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#128    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#129    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#130    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#131    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#132    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#133    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#134    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#135    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#136    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#137    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#138    RenderCustomPaint.performLayout (package:flutter/src/rendering/custom_paint.dart:545:11)
#139    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#140    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#141    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#142    MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:171:12)
#143    _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:1003:7)
#144    MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:240:7)
#145    RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:403:14)
#146    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#147    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#148    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#149    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#150    _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1376:11)
#151    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#152    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#153    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#154    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#155    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#156    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#157    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#158    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#159    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#160    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#161    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#162    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#163    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#164    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#165    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#166    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#167    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#168    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#169    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#170    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#171    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#172    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#173    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#174    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#175    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#176    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#177    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#178    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#179    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#180    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#181    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#182    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#183    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#184    RenderOffstage.performLayout (package:flutter/src/rendering/proxy_box.dart:3460:14)
#185    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#186    RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:116:14)
#187    RenderObject.layout (package:flutter/src/rendering/object.dart:1915:7)
#188    _RenderTheatre.performLayout (package:flutter/src/widgets/overlay.dart:749:15)
#189    RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1757:7)
#190    PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:887:18)
#191    RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:504:19)
#192    WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:892:13)
#193    RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:370:5)
#194    SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1146:15)
#195    SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1083:9)
#196    SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:997:5)
#200    _invoke (dart:ui/hooks.dart:151:10)
#201    PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:308:5)
#202    _drawFrame (dart:ui/hooks.dart:115:31)
(elided 3 frames from dart:async)
Image provider: FMNetworkNoRetryImageProvider()
Image key: FMNetworkNoRetryImageProvider()
====================================================================================================
[widgets/app_error_widget] Displayed error in AppErrorWidget:
                           TimeoutException after 0:00:03.000000: Future not completed

Platforms Affected

Android, iOS, Web

Severity

Erroneous: Prevents normal functioning and causes errors in the console

Frequency

Consistently: Always occurs at the same time and location

Requirements

  • [X] I agree to follow this project's Code of Conduct
  • [X] My Flutter/Dart installation is unaltered, and flutter doctor finds no relevant issues
  • [X] I am using the latest stable version of this package
  • [X] I have checked the FAQs section on the documentation website
  • [X] I have checked for similar issues which may be duplicates

fodor99 avatar Aug 12 '22 20:08 fodor99

Try it in chrome, open up the dev console ctrl-shift-j, and click on the network tab. What is the full URL it's trying to connect to, and if you copy/paste that URL and just paste it in your browser, does it work ?

ibrierley avatar Aug 12 '22 20:08 ibrierley

@fodor99 Hi there, does the above suggestion work for you, or do you need more support? Happy to help more if needed!

JaffaKetchup avatar Aug 16 '22 20:08 JaffaKetchup

@fodor99 Hi there, does the above suggestion work for you, or do you need more support? Happy to help more if needed!

I do not need yet more support. I hope I will solve it on this weekend.

fodor99 avatar Aug 18 '22 06:08 fodor99

I'm going to close this now. Let me know if you need more help!

JaffaKetchup avatar Aug 31 '22 16:08 JaffaKetchup