maps icon indicating copy to clipboard operation
maps copied to clipboard

GPX export doesn't work more than a certain number of route points

Open piiskop opened this issue 4 years ago • 4 comments

I'm not sure whether this is the right place to seek for a solution but I haven't found any other place. The problem is that it isn't possible to export directions as GPX. I click the button and get the message "Failed to export the current route". The inspector shows a "500"-error but "apache2"-s error log doesn't show any specific error, only some authentication stuff: "[authz_core:debug] [pid 27895] mod_authz_core.c(809): [client 192.168.1.65:44444] AH01626: authorization result of : granted". In the inspector, I see that something will be posted to https://nextcloud.tennis24.ee/index.php/apps/maps/exportRoute. Part of this something is "coords:

..." OSRM log shows up no errors.

The contents of data/nextcloud.log:

"{"reqId":"afEnn5QKUGZY44IWlZzJ","level":0,"time":"2020-07-07T00:28:42+00:00","remoteAddr":"192.168.1.65","user":"peacecop-kalmer","app":"no app in context","method":"POST","url":"/index.php/apps/maps/exportRoute","message":"Deprecated event type for \OCP\Files::preWrite: Symfony\Component\EventDispatcher\GenericEvent","userAgent":"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Mobile Safari/537.36","version":"18.0.6.0"} {"reqId":"afEnn5QKUGZY44IWlZzJ","level":0,"time":"2020-07-07T00:28:42+00:00","remoteAddr":"192.168.1.65","user":"peacecop-kalmer","app":"no app in context","method":"POST","url":"/index.php/apps/maps/exportRoute","message":"Deprecated event type for \OCP\Files::preCreate: Symfony\Component\EventDispatcher\GenericEvent","userAgent":"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Mobile Safari/537.36","version":"18.0.6.0"} {"reqId":"afEnn5QKUGZY44IWlZzJ","level":0,"time":"2020-07-07T00:28:42+00:00","remoteAddr":"192.168.1.65","user":"peacecop-kalmer","app":"wopi","method":"POST","url":"/index.php/apps/maps/exportRoute","message":"not a file","userAgent":"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Mobile Safari/537.36","version":"18.0.6.0"} {"reqId":"afEnn5QKUGZY44IWlZzJ","level":3,"time":"2020-07-07T00:28:42+00:00","remoteAddr":"192.168.1.65","user":"peacecop-kalmer","app":"index","method":"POST","url":"/index.php/apps/maps/exportRoute","message":{"Exception":"OCP\Files\NotPermittedException","Message":"Could not create path","Code":0,"Trace":[{"file":"/projektid/nextcloud/apps/maps/lib/Controller/RoutingController.php","line":111,"function":"newFile","class":"OC\Files\Node\Folder","type":"->","args":["2020-07-07 03:28:42 (+03:00) Vesiveski tee, Vesiveski tee, Vesiveski tee, Vesiveski tee, , , Vesiveski tee, Vesiveski tee, Pargi allee, , , , , Merenuka, Merenuka, Merenuka, Spordi, Pargi allee, Lossi, Lossi, Kose, Kose, Pohla, Kose, Tallinn \u2014 Rannam\u00f5isa \u2014 Kloogaranna, Tallinn \u2014 Rannam\u00f5isa \u2014 Kloogaranna, V\u00e4\u00e4na tee, , Tallinn \u2014 Rannam\u00f5isa \u2014 Kloogaranna, Pargi allee, Pargi allee, Vesiveski tee, Pargi allee, Tallinn \u2014 Rannam\u00f5isa \u2014 Kloogaranna, L\u00f5okese tee, Orava tee, L\u00f5okese tee, Tallinn \u2014 Rannam\u00f5isa \u2014 Kloogaranna, Tallinn \u2014 Rannam\u00f5isa \u2014 Kloogaranna, , Tallinn \u2014 Rannam\u00f5isa \u2014 Kloogaranna, Pargimetsa tee, Pargimetsa tee, Tallinn \u2014 Rannam\u00f5isa \u2014 Kloogaranna, M\u00e4nnim\u00e4e tee, M\u00e4nnim\u00e4e tee, , , , , , , .gpx"]},{"file":"/projektid/nextcloud/lib/private/AppFramework/Http/Dispatcher.php","line":170,"function":"exportRoute","class":"OCA\Maps\Controller\RoutingController","type":"->","args":[" <rtept lat="59.39462" lon="24.29565">\n \n <rtept lat="59.39473" lon="24.29571">\n \n <rtept lat="59.39481" lon="24.29573">\n \n <rtept lat="59.39489" lon="24.29578">\n \n <rtept lat="59.39523" lon="24.29587">\n \n <rtept lat="59.39523" lon="24.29587">\n \n <rtept lat="59.39525" lon="24.29597">\n \n <rtept lat="59.39527" lon="24.29605">\n \n <rtept lat="59.39527" lon="24.29605">\n \n <rtept lat="59.39525" lon="24.29614">\n \n <rtept lat="59.39524" lon="24.29618">\n \n <rtept lat="59.39524" lon="24.29618">\n \n <rtept lat="59.39524" lon="24.29618">\n \n <rtept lat="59.39525" lon="24.29614">\n \n <rtept lat="59.39527" lon="24.29605">\n \n <rtept lat="59.39527" lon="24.29605">\n \n <rtept lat="59.39546" lon="24.29597">\n \n <rtept lat="59.39546" lon="24.29597">\n \n <rtept lat="59.39546" lon="24.29597">\n \n <rtept lat="59.39562" lon="24.2959">\n \n <rtept lat="59.39562" lon="24.2959">\n \n <rtept lat="59.39562" lon="24.2959">\n \n <rtept lat="59.3959" lon="24.29581">\n \n <rtept lat="59.3959" lon="24.29581">\n \n <rtept lat="59.39587" lon="24.29563">\n \n <rtept lat="59.39586" lon="24.29553">\n \n <rtept lat="59.39586" lon="24.29553">\n \n <rtept lat="59.39586" lon="24.29553">\n \n <rtept lat="59.39587" lon="24.29563">\n \n <rtept lat="59.39587" lon="24.29563">\n \n <rtept lat="59.39603" lon="24.29554">\n \n <rtept lat="59.39603" lon="24.29554">\n \n <rtept lat="59.39602" lon="24.29551">\n \n <rtept lat="59.396" lon="24.29537">\n \n <rtept lat="59.396" lon="24.29537">\n \n <rtept lat="59.396" lon="24.29537">\n \n <rtept lat="59.39602" lon="24.29551">\n \n <rtept lat="59.39603" lon="24.29554">\n \n <rtept lat="59.39603" lon="24.29554">\n \n <rtept lat="59.39596" lon="24.29558">\n \n <rtept lat="59.39596" lon="24.29558">\n \n <rtept lat="59.39596" lon="24.29558">\n \n <rtept lat="59.39603" lon="24.29554">\n \n <rtept lat="59.39603" lon="24.29554">\n \n <rtept lat="59.39604" lon="24.2956">\n \n <rtept lat="59.39603" lon="24.29578">\n \n <rtept lat="59.39603" lon="24.29578">\n \n <rtept lat="59.3962" lon="24.29578">\n \n <rtept lat="59.3962" lon="24.29578">\n \n <rtept lat="59.3962" lon="24.29578">\n \n <rtept lat="59.39603" lon="24.29578">\n \n <rtept lat="59.39599" lon="24.29578">\n \n <rtept lat="59.3959" lon="24.29581">\n \n <rtept lat="59.39562" lon="24.2959">\n \n <rtept lat="59.39527" lon="24.29605">\n \n <rtept lat="59.39527" lon="24.29605">\n \n <rtept lat="59.39525" lon="24.29614">\n \n <rtept lat="59.39523" lon="24.29626">\n \n <rtept lat="59.39523" lon="24.29626">\n \n <rtept lat="59.39528" lon="24.29661">\n \n <rtept lat="59.39552" lon="24.29849">\n \n <rtept lat="59.39552" lon="24.29849">\n \n <rtept lat="59.39663" lon="24.29822">\n \n <rtept lat="59.39725" lon="24.29804">\n \n <rtept lat="59.39745" lon="24.29797">\n \n <rtept lat="59.39762" lon="24.29781">\n \n <rtept lat="59.398" lon="24.29719">\n \n <rtept lat="59.398" lon="24.29719">\n \n <rtept lat="59.39793" lon="24.29704">\n \n <rtept lat="59.39788" lon="24.29644">\n \n <rtept lat="59.39774" lon="24.29538">\n \n <rtept lat="59.39768" lon="24.29476">\n \n <rtept lat="59.3977" lon="24.29435">\n \n <rtept lat="59.39777" lon="24.29379">\n \n <rtept lat="59.39783" lon="24.29331">\n \n <rtept lat="59.39784" lon="24.29283">\n \n <rtept lat="59.39784" lon="24.29283">\n \n <rtept lat="59.39784" lon="24.29283">\n \n <rtept lat="59.39784" lon="24.29276">\n \n <rtept lat="59.39782" lon="24.29244">\n \n <rtept lat="59.39766" lon="24.29148">\n \n <rtept lat="59.39765" lon="24.29111">\n \n <rtept lat="59.39759" lon="24.29093">\n \n <rtept lat="59.39756" lon="24.29085">\n \n <rtept lat="59.39754" lon="24.29075">\n \n <rtept lat="59.39754" lon="24.29075">\n \n <rtept lat="59.39754" lon="24.29074">\n \n <rtept lat="59.39747" lon="24.28986">\n \n <rtept lat="59.39741" lon="24.28893">\n \n <rtept lat="59.39734" lon="24.28839">\n \n <rtept lat="59.3973" lon="24.28812">\n \n <rtept lat="59.3973" lon="24.28809">\n \n <rtept lat="59.3973" lon="24.28809">\n \n <rtept lat="59.3973" lon="24.28809">\n \n <rtept lat="59.3973" lon="24.28781">\n \n <rtept lat="59.39741" lon="24.28739">\n \n <rtept lat="59.39753" lon="24.28713">\n \n <rtept lat="59.3978" lon="24.28672">\n \n <rtept lat="59.3978" lon="24.28672">\n \n <rtept lat="59.3978" lon="24.28672">\n \n <rtept lat="59.39791" lon="24.28657">\n \n <rtept lat="59.3981" lon="24.28648">\n \n <rtept lat="59.39817" lon="24.2864">\n \n <rtept lat="59.39838" lon="24.28628">\n \n <rtept lat="59.39849" lon="24.28633">\n \n <rtept lat="59.39874" lon="24.2865">\n \n <rtept lat="59.39886" lon="24.28655">\n \n <rtept lat="59.39886" lon="24.28655">\n \n <rtept lat="59.39898" lon="24.28646">\n \n <rtept lat="59.3992" lon="24.2862">\n \n <rtept lat="59.39959" lon="24.28562">\n \n <rtept lat="59.39968" lon="24.28525">\n \n <rtept lat="59.39974" lon="24.28504">\n \n <rtept lat="59.39986" lon="24.28484">\n \n <rtept lat="59.39998" lon="24.28452">\n \n <rtept lat="59.40008" lon="24.2844">\n \n <rtept lat="59.40018" lon="24.28444">\n \n <rtept lat="59.40028" lon="24.28439">\n \n <rtept lat="59.40035" lon="24.28423">\n \n <rtept lat="59.4004" lon="24.28377">\n \n <rtept lat="59.40051" lon="24.28348">\n \n <rtept lat="59.4006" lon="24.2832">\n \n <rtept lat="59.40069" lon="24.28285">\n \n <rtept lat="59.40074" lon="24.28269">\n \n <rtept lat="59.40083" lon="24.2826">\n \n <rtept lat="59.40098" lon="24.28258">\n \n <rtept lat="59.40107" lon="24.28265">\n \n <rtept lat="59.4012" lon="24.28274">\n \n <rtept lat="59.40124" lon="24.28278">\n \n <rtept lat="59.40127" lon="24.28282">\n \n <rtept lat="59.40127" lon="24.28282">\n \n <rtept lat="59.40124" lon="24.28286">\n \n <rtept lat="59.40098" lon="24.28308">\n \n <rtept lat="59.40085" lon="24.28342">\n \n <rtept lat="59.40085" lon="24.28342">\n \n <rtept lat="59.40085" lon="24.28342">\n \n <rtept lat="59.40098" lon="24.28308">\n \n <rtept lat="59.40124" lon="24.28286">\n \n <rtept lat="59.40127" lon="24.28282">\n \n <rtept lat="59.40129" lon="24.28282">\n \n <rtept lat="59.40133" lon="24.28284">\n \n <rtept lat="59.40138" lon="24.28277">\n \n <rtept lat="59.40146" lon="24.28274">\n \n <rtept lat="59.40157" lon="24.2828">\n \n <rtept lat="59.40177" lon="24.28309">\n \n <rtept lat="59.40187" lon="24.28316">\n \n <rtept lat="59.40202" lon="24.28334">\n \n <rtept lat="59.40213" lon="24.28336">\n \n <rtept lat="59.40221" lon="24.28349">\n \n <rtept lat="59.40234" lon="24.28368">\n \n <rtept lat="59.40246" lon="24.28388">\n \n <rtept lat="59.40258" lon="24.28403">\n \n <rtept lat="59.40258" lon="24.28403">\n \n <rtept lat="59.40273" lon="24.28394">\n \n <rtept lat="59.403" lon="24.28367">\n \n <rtept lat="59.40314" lon="24.28354">\n \n <rtept lat="59.40328" lon="24.28343">\n \n <rtept lat="59.40329" lon="24.28342">\n \n <rtept lat="59.40329" lon="24.28342">\n \n <rtept lat="59.40329" lon="24.28342">\n \n <rtept lat="59.40328" lon="24.28343">\n \n <rtept lat="59.40314" lon="24.28354">\n \n <rtept lat="59.403" lon="24.28367">\n \n <rtept lat="59.40273" lon="24.28394">\n \n <rtept lat="59.40258" lon="24.28403">\n \n <rtept lat="59.40247" lon="24.28415">\n \n <rtept lat="59.40241" lon="24.28427">\n \n <rtept lat="59.40231" lon="24.28447">\n \n <rtept lat="59.40226" lon="24.28475">\n \n <rtept lat="59.40222" lon="24.28528">\n \n <rtept lat="59.4022" lon="24.28556">\n \n <rtept lat="59.40204" lon="24.28616">\n \n <rtept lat="59.40162" lon="24.28712">\n \n <rtept lat="59.4013" lon="24.28811">\n \n <rtept lat="59.40123" lon="24.2891">\n \n <rtept lat="59.40121" lon="24.28945">\n \n <rtept lat="59.40122" lon="24.28955">\n \n <rtept lat="59.40124" lon="24.28977">\n \n <rtept lat="59.40124" lon="24.28977">\n \n <rtept lat="59.40124" lon="24.28977">\n \n <rtept lat="59.40123" lon="24.2901">\n \n <rtept lat="59.40117" lon="24.29053">\n \n <rtept lat="59.40082" lon="24.29169">\n \n <rtept lat="59.40012" lon="24.29344">\n \n <rtept lat="59.39981" lon="24.29472">\n \n <rtept lat="59.39958" lon="24.2957">\n \n <rtept lat="59.39949" lon="24.29592">\n \n <rtept lat="59.39949" lon="24.29592">\n \n <rtept lat="59.39917" lon="24.29627">\n \n <rtept lat="59.39892" lon="24.29641">\n \n <rtept lat="59.39843" lon="24.29665">\n \n <rtept lat="59.398" lon="24.29719">\n \n <rtept lat="59.39788" lon="24.29739">\n \n <rtept lat="59.39788" lon="24.29739">\n \n <rtept lat="59.39788" lon="24.29739">\n \n <rtept lat="59.39762" lon="24.29781">\n \n <rtept lat="59.39745" lon="24.29797">\n \n <rtept lat="59.39725" lon="24.29804">\n \n <rtept lat="59.39725" lon="24.29804">\n \n <rtept lat="59.39723" lon="24.29793">\n \n <rtept lat="59.39722" lon="24.29783">\n \n <rtept lat="59.39718" lon="24.29741">\n \n <rtept lat="59.39718" lon="24.29741">\n \n <rtept lat="59.39723" lon="24.29693">\n \n <rtept lat="59.39723" lon="24.29693">\n \n <rtept lat="59.39723" lon="24.29693">\n \n <rtept lat="59.39718" lon="24.29741">\n \n <rtept lat="59.39722" lon="24.29783">\n \n <rtept lat="59.39723" lon="24.29793">\n \n <rtept lat="59.39725" lon="24.29804">\n \n <rtept lat="59.39725" lon="24.29804">\n \n <rtept lat="59.39742" lon="24.30001">\n \n <rtept lat="59.39742" lon="24.30023">\n \n <rtept lat="59.39742" lon="24.30023">\n \n <rtept lat="59.39742" lon="24.30023">\n \n <rtept lat="59.3974" lon="24.30081">\n \n <rtept lat="59.3974" lon="24.30081">\n \n <rtept lat="59.39827" lon="24.30086">\n \n <rtept lat="59.39827" lon="24.30086">\n \n <rtept lat="59.39829" lon="24.30008">\n \n <rtept lat="59.39826" lon="24.29965">\n \n <rtept lat="59.39826" lon="24.29965">\n \n <rtept lat="59.39804" lon="24.2997">\n \n <rtept lat="59.39804" lon="24.2997">\n \n <rtept lat="59.39804" lon="24.2997">\n \n <rtept lat="59.39826" lon="24.29965">\n \n <rtept lat="59.39826" lon="24.29965">\n \n <rtept lat="59.39829" lon="24.30008">\n \n <rtept lat="59.39829" lon="24.30008">\n \n <rtept lat="59.39893" lon="24.29995">\n \n <rtept lat="59.39893" lon="24.29995">\n \n <rtept lat="59.39893" lon="24.29995">\n \n <rtept lat="59.39829" lon="24.30008">\n \n <rtept lat="59.39829" lon="24.30008">\n \n <rtept lat="59.39827" lon="24.30086">\n \n <rtept lat="59.39826" lon="24.30118">\n \n <rtept lat="59.39825" lon="24.30165">\n \n <rtept lat="59.39822" lon="24.30273">\n \n <rtept lat="59.39822" lon="24.30303">\n \n <rtept lat="59.39822" lon="24.30303">\n \n <rtept lat="59.39919" lon="24.30262">\n \n <rtept lat="59.39919" lon="24.30262">\n \n <rtept lat="59.39919" lon="24.30262">\n \n <rtept lat="59.39822" lon="24.30303">\n \n <rtept lat="59.39795" lon="24.30313">\n \n <rtept lat="59.39772" lon="24.30318">\n \n <rtept lat="59.39749" lon="24.3032">\n \n <rtept lat="59.39732" lon="24.30318">\n \n <rtept lat="59.39732" lon="24.30318">\n \n <rtept lat="59.39731" lon="24.30362">\n \n <rtept lat="59.39731" lon="24.30362">\n \n <rtept lat="59.39746" lon="24.30356">\n \n <rtept lat="59.39782" lon="24.30341">\n \n <rtept lat="59.39782" lon="24.30341">\n \n <rtept lat="59.39782" lon="24.30341">\n \n <rtept lat="59.39746" lon="24.30356">\n \n <rtept lat="59.39731" lon="24.30362">\n \n <rtept lat="59.39723" lon="24.30361">\n \n <rtept lat="59.39721" lon="24.30339">\n \n <rtept lat="59.39715" lon="24.30325">\n \n <rtept lat="59.39675" lon="24.303">\n \n <rtept lat="59.39641" lon="24.30257">\n \n <rtept lat="59.39592" lon="24.30168">\n \n <rtept lat="59.39542" lon="24.30067">\n \n <rtept lat="59.39534" lon="24.30051">\n \n <rtept lat="59.39534" lon="24.30051">\n \n <rtept lat="59.39534" lon="24.30051">\n \n <rtept lat="59.39542" lon="24.30067">\n \n <rtept lat="59.39542" lon="24.30067">\n \n <rtept lat="59.39546" lon="24.3006">\n \n <rtept lat="59.39546" lon="24.3006">\n \n <rtept lat="59.39478" lon="24.29919">\n \n <rtept lat="59.39464" lon="24.29888">\n \n <rtept lat="59.39464" lon="24.29888">\n \n <rtept lat="59.39472" lon="24.29876">\n \n <rtept lat="59.39552" lon="24.29849">\n \n <rtept lat="59.39599" lon="24.29838">\n \n <rtept lat="59.39599" lon="24.29838">\n \n <rtept lat="59.39599" lon="24.29838">\n \n <rtept lat="59.39552" lon="24.29849">\n \n <rtept lat="59.39552" lon="24.29849">\n \n <rtept lat="59.39549" lon="24.29823">\n \n <rtept lat="59.39549" lon="24.29823">\n \n <rtept lat="59.39549" lon="24.29823">\n \n <rtept lat="59.39552" lon="24.29849">\n \n <rtept lat="59.39552" lon="24.29849">\n \n <rtept lat="59.39472" lon="24.29876">\n \n <rtept lat="59.39464" lon="24.29888">\n \n <rtept lat="59.39464" lon="24.29888">\n \n <rtept lat="59.39478" lon="24.29919">\n \n <rtept lat="59.39478" lon="24.29919">\n \n <rtept lat="59.39457" lon="24.29943">\n \n <rtept lat="59.39448" lon="24.29949">\n \n <rtept lat="59.39448" lon="24.29949">\n \n <rtept lat="59.39445" lon="24.29944">\n \n <rtept lat="59.39445" lon="24.29944">\n \n <rtept lat="59.39445" lon="24.29944">\n \n <rtept lat="59.39448" lon="24.29949">\n \n <rtept lat="59.39448" lon="24.29949">\n \n <rtept lat="59.3943" lon="24.2999">\n \n <rtept lat="59.3943" lon="24.2999">\n \n <rtept lat="59.39398" lon="24.29994">\n \n <rtept lat="59.39396" lon="24.29997">\n \n <rtept lat="59.39396" lon="24.29997">\n \n <rtept lat="59.39396" lon="24.29997">\n \n <rtept lat="59.39398" lon="24.29994">\n \n <rtept lat="59.3943" lon="24.2999">\n \n <rtept lat="59.39448" lon="24.29949">\n \n <rtept lat="59.39457" lon="24.29943">\n \n <rtept lat="59.39478" lon="24.29919">\n \n <rtept lat="59.39478" lon="24.29919">\n \n <rtept lat="59.39464" lon="24.29888">\n \n <rtept lat="59.39455" lon="24.29869">\n \n <rtept lat="59.39421" lon="24.29797">\n \n <rtept lat="59.39416" lon="24.29787">\n \n <rtept lat="59.39416" lon="24.29787">\n \n <rtept lat="59.39416" lon="24.29787">\n \n <rtept lat="59.3939" lon="24.29735">\n \n <rtept lat="59.39358" lon="24.29674">\n \n <rtept lat="59.39358" lon="24.29674">\n \n <rtept lat="59.39363" lon="24.29642">\n \n <rtept lat="59.39361" lon="24.29587">\n \n <rtept lat="59.3936" lon="24.29551">\n \n <rtept lat="59.3936" lon="24.29551">\n \n <rtept lat="59.39363" lon="24.29548">\n \n <rtept lat="59.39365" lon="24.29507">\n \n <rtept lat="59.39364" lon="24.295">\n \n <rtept lat="59.39354" lon="24.2944">\n \n <rtept lat="59.39345" lon="24.29449">\n \n <rtept lat="59.39341" lon="24.29451">\n \n <rtept lat="59.39343" lon="24.2947">\n \n <rtept lat="59.39343" lon="24.2947">\n \n <rtept lat="59.39343" lon="24.2947">\n \n <rtept lat="59.39341" lon="24.29451">\n \n <rtept lat="59.39345" lon="24.29449">\n \n <rtept lat="59.39345" lon="24.29449">\n \n <rtept lat="59.39332" lon="24.29396">\n \n <rtept lat="59.39318" lon="24.29286">\n \n <rtept lat="59.39311" lon="24.29272">\n \n <rtept lat="59.39311" lon="24.29272">\n \n <rtept lat="59.39311" lon="24.29272">\n \n <rtept lat="59.39307" lon="24.29263">\n \n <rtept lat="59.39307" lon="24.29263">\n \n <rtept lat="59.39321" lon="24.29148">\n \n <rtept lat="59.39342" lon="24.28981">\n \n <rtept lat="59.3935" lon="24.28917">\n \n <rtept lat="59.39354" lon="24.28889">\n \n <rtept lat="59.39414" lon="24.28431">\n \n <rtept lat="59.39414" lon="24.28431">\n \n <rtept lat="59.39406" lon="24.28424">\n \n <rtept lat="59.39403" lon="24.28421">\n \n <rtept lat="59.39386" lon="24.28423">\n \n <rtept lat="59.39376" lon="24.28427">\n \n <rtept lat="59.39376" lon="24.28427">\n \n <rtept lat="59.39376" lon="24.28427">\n \n <rtept lat="59.39386" lon="24.28423">\n \n <rtept lat="59.39403" lon="24.28421">\n \n <rtept lat="59.39406" lon="24.28424">\n \n <rtept lat="59.39406" lon="24.28424">\n \n <rtept lat="59.39428" lon="24.28276">\n \n <rtept lat="59.39485" lon="24.27997">\n \n <rtept lat="59.39587" lon="24.27608">\n \n <rtept lat="59.3962" lon="24.27476">\n \n <rtept lat="59.3965" lon="24.27369">\n \n <rtept lat="59.3965" lon="24.27369">\n \n <rtept lat="59.3965" lon="24.27369">\n \n <rtept lat="59.3962" lon="24.27476">\n \n <rtept lat="59.3962" lon="24.27476">\n \n <rtept lat="59.39631" lon="24.27484">\n \n <rtept lat="59.39631" lon="24.27484">\n \n <rtept lat="59.39651" lon="24.27406">\n \n <rtept lat="59.39651" lon="24.27406">\n \n <rtept lat="59.39658" lon="24.27406">\n \n <rtept lat="59.39667" lon="24.27403">\n \n <rtept lat="59.39674" lon="24.27394">\n \n <rtept lat="59.39686" lon="24.27391">\n \n <rtept lat="59.39694" lon="24.27395">\n \n <rtept lat="59.39701" lon="24.27399">\n \n <rtept lat="59.39711" lon="24.27412">\n \n <rtept lat="59.39724" lon="24.27434">\n \n <rtept lat="59.39768" lon="24.27544">\n \n <rtept lat="59.39781" lon="24.27568">\n \n <rtept lat="59.39815" lon="24.27604">\n \n <rtept lat="59.39861" lon="24.27649">\n \n <rtept lat="59.3987" lon="24.27654">\n \n <rtept lat="59.3987" lon="24.27654">\n \n <rtept lat="59.3987" lon="24.27654">\n \n <rtept lat="59.39861" lon="24.27649">\n \n <rtept lat="59.39815" lon="24.27604">\n \n <rtept lat="59.39781" lon="24.27568">\n \n <rtept lat="59.39768" lon="24.27544">\n \n <rtept lat="59.39768" lon="24.27544">\n \n <rtept lat="59.39754" lon="24.27562">\n \n <rtept lat="59.39731" lon="24.27587">\n \n <rtept lat="59.39722" lon="24.27599">\n \n <rtept lat="59.39722" lon="24.27599">\n \n <rtept lat="59.39722" lon="24.27599">\n \n <rtept lat="59.3971" lon="24.27613">\n \n <rtept lat="59.39694" lon="24.27676">\n \n <rtept lat="59.39681" lon="24.27719">\n \n <rtept lat="59.39669" lon="24.27763">\n \n <rtept lat="59.39668" lon="24.27799">\n \n <rtept lat="59.39674" lon="24.27832">\n \n <rtept lat="59.39685" lon="24.27865">\n \n <rtept lat="59.39692" lon="24.27885">\n \n <rtept lat="59.39692" lon="24.27885">\n \n <rtept lat="59.3969" lon="24.27903">\n \n <rtept lat="59.3969" lon="24.27915">\n \n <rtept lat="59.39691" lon="24.27931">\n \n <rtept lat="59.39692" lon="24.27942">\n \n <rtept lat="59.39691" lon="24.27964">\n \n <rtept lat="59.39687" lon="24.27981">\n \n <rtept lat="59.39675" lon="24.27994">\n \n <rtept lat="59.39668" lon="24.28013">\n \n <rtept lat="59.39664" lon="24.28037">\n \n <rtept lat="59.39664" lon="24.28041">\n \n <rtept lat="59.39664" lon="24.28041">\n \n <rtept lat="59.39664" lon="24.28041">\n \n <rtept lat="59.39664" lon="24.28045">\n \n <rtept lat="59.39666" lon="24.28054">\n \n <rtept lat="59.39656" lon="24.28094">\n \n <rtept lat="59.39649" lon="24.28114">\n \n <rtept lat="59.39644" lon="24.28145">\n \n <rtept lat="59.39638" lon="24.28173">\n \n <rtept lat="59.39627" lon="24.2821">\n \n <rtept lat="59.39621" lon="24.28239">\n \n <rtept lat="59.39613" lon="24.28268">\n \n <rtept lat="59.3961" lon="24.2828">\n \n <rtept lat="59.3961" lon="24.28289">\n \n <rtept lat="59.3961" lon="24.28316">\n \n <rtept lat="59.39613" lon="24.28325">\n \n <rtept lat="59.39613" lon="24.28345">\n \n <rtept lat="59.39612" lon="24.28369">\n \n <rtept lat="59.39611" lon="24.28387">\n \n <rtept lat="59.39614" lon="24.28416">\n \n <rtept lat="59.39612" lon="24.28442">\n \n <rtept lat="59.39609" lon="24.28467">\n \n <rtept lat="59.3961" lon="24.28487">\n \n <rtept lat="59.39619" lon="24.2853">\n \n <rtept lat="59.3963" lon="24.28558">\n \n <rtept lat="59.39632" lon="24.2858">\n \n <rtept lat="59.39638" lon="24.286">\n \n <rtept lat="59.39646" lon="24.28619">\n \n <rtept lat="59.39649" lon="24.28628">\n \n <rtept lat="59.39646" lon="24.28654">\n \n <rtept lat="59.39641" lon="24.28686">\n \n <rtept lat="59.39636" lon="24.28721">\n \n <rtept lat="59.39637" lon="24.28729">\n \n <rtept lat="59.3964" lon="24.28734">\n \n <rtept lat="59.39644" lon="24.28735">\n \n <rtept lat="59.39644" lon="24.28772">\n \n <rtept lat="59.39642" lon="24.28798">\n \n <rtept lat="59.39642" lon="24.28798">\n \n <rtept lat="59.39644" lon="24.28811">\n \n <rtept lat="59.39644" lon="24.28811">\n \n <rtept lat="59.39643" lon="24.2882">\n \n <rtept lat="59.39643" lon="24.2882">\n \n <rtept lat="59.39643" lon="24.28823">\n \n <rtept lat="59.39642" lon="24.28829">\n \n <rtept lat="59.39641" lon="24.28834">\n \n <rtept lat="59.39641" lon="24.28834">\n \n <rtept lat="59.39638" lon="24.28839">\n \n <rtept lat="59.39638" lon="24.28839">\n \n <rtept lat="59.39635" lon="24.28841">\n \n <rtept lat="59.39629" lon="24.28846">\n \n <rtept lat="59.39622" lon="24.28846">\n \n <rtept lat="59.39613" lon="24.28847">\n \n <rtept lat="59.39606" lon="24.28848">\n \n <rtept lat="59.396" lon="24.28852">\n \n <rtept lat="59.39592" lon="24.28863">\n \n <rtept lat="59.39585" lon="24.2887">\n \n <rtept lat="59.39576" lon="24.2888">\n \n <rtept lat="59.39568" lon="24.28889">\n \n <rtept lat="59.3956" lon="24.28897">\n \n <rtept lat="59.39554" lon="24.28904">\n \n <rtept lat="59.3955" lon="24.28909">\n \n <rtept lat="59.39547" lon="24.28914">\n \n <rtept lat="59.39543" lon="24.28918">\n \n <rtept lat="59.39541" lon="24.28921">\n \n <rtept lat="59.39536" lon="24.28922">\n \n <rtept lat="59.39536" lon="24.28922">\n \n <rtept lat="59.39538" lon="24.28892">\n \n <rtept lat="59.39538" lon="24.28892">\n \n <rtept lat="59.39538" lon="24.28892">\n \n <rtept lat="59.39538" lon="24.28882">\n \n <rtept lat="59.39538" lon="24.28882">\n \n <rtept lat="59.39548" lon="24.28903">\n \n <rtept lat="59.3955" lon="24.28909">\n \n <rtept lat="59.3955" lon="24.28909">\n \n <rtept lat="59.39554" lon="24.28904">\n \n <rtept lat="59.3956" lon="24.28897">\n \n <rtept lat="59.39568" lon="24.28889">\n \n <rtept lat="59.39576" lon="24.2888">\n \n <rtept lat="59.39585" lon="24.2887">\n \n <rtept lat="59.39592" lon="24.28863">\n \n <rtept lat="59.396" lon="24.28852">\n \n <rtept lat="59.39606" lon="24.28848">\n \n <rtept lat="59.39613" lon="24.28847">\n \n <rtept lat="59.39622" lon="24.28846">\n \n <rtept lat="59.39629" lon="24.28846">\n \n <rtept lat="59.39635" lon="24.28841">\n \n <rtept lat="59.39638" lon="24.28839">\n \n <rtept lat="59.39641" lon="24.28834">\n \n <rtept lat="59.39641" lon="24.28834">\n \n <rtept lat="59.39642" lon="24.28829">\n \n <rtept lat="59.39643" lon="24.28823">\n \n <rtept lat="59.39643" lon="24.2882">\n \n <rtept lat="59.39643" lon="24.2882">\n \n <rtept lat="59.39644" lon="24.28811">\n \n <rtept lat="59.39644" lon="24.28811">\n \n <rtept lat="59.39642" lon="24.28798">\n \n <rtept lat="59.39642" lon="24.28798">\n \n <rtept lat="59.39644" lon="24.28772">\n \n <rtept lat="59.39644" lon="24.28735">\n \n <rtept lat="59.3964" lon="24.28734">\n \n <rtept lat="59.39637" lon="24.28729">\n \n <rtept lat="59.39636" lon="24.28721">\n \n <rtept lat="59.3964" lon="24.28694">\n \n <rtept lat="59.3964" lon="24.28694">\n \n <rtept lat="59.3964" lon="24.28694">\n \n <rtept lat="59.39636" lon="24.28721">\n \n <rtept lat="59.39637" lon="24.28729">\n \n <rtept lat="59.3964" lon="24.28734">\n \n <rtept lat="59.39644" lon="24.28735">\n \n <rtept lat="59.39644" lon="24.28772">\n \n <rtept lat="59.39642" lon="24.28798">\n \n <rtept lat="59.39642" lon="24.28798">\n \n <rtept lat="59.39644" lon="24.28811">\n \n <rtept lat="59.39644" lon="24.28811">\n \n <rtept lat="59.39643" lon="24.2882">\n \n <rtept lat="59.39643" lon="24.2882">\n \n <rtept lat="59.39643" lon="24.28823">\n \n <rtept lat="59.39642" lon="24.28829">\n \n <rtept lat="59.39641" lon="24.28834">\n \n <rtept lat="59.39641" lon="24.28834">\n \n <rtept lat="59.39638" lon="24.28839">\n \n <rtept lat="59.39638" lon="24.28839">\n \n <rtept lat="59.39634" lon="24.28848">\n \n <rtept lat="59.39633" lon="24.28866">\n \n <rtept lat="59.39633" lon="24.28881">\n \n <rtept lat="59.39634" lon="24.28889">\n \n <rtept lat="59.39637" lon="24.28894">\n \n <rtept lat="59.39642" lon="24.28901">\n \n <rtept lat="59.39654" lon="24.28906">\n \n <rtept lat="59.39661" lon="24.28911">\n \n <rtept lat="59.39666" lon="24.28917">\n \n <rtept lat="59.39673" lon="24.28925">\n \n <rtept lat="59.39678" lon="24.28938">\n \n <rtept lat="59.3968" lon="24.28953">\n \n <rtept lat="59.39684" lon="24.28983">\n \n <rtept lat="59.39687" lon="24.29017">\n \n <rtept lat="59.39687" lon="24.29048">\n \n <rtept lat="59.39691" lon="24.29068">\n \n <rtept lat="59.39697" lon="24.29079">\n \n <rtept lat="59.39706" lon="24.29089">\n \n <rtept lat="59.3971" lon="24.29107">\n \n <rtept lat="59.39712" lon="24.29117">\n \n <rtept lat="59.39715" lon="24.2914">\n \n <rtept lat="59.39715" lon="24.2916">\n \n <rtept lat="59.39712" lon="24.2921">\n \n <rtept lat="59.39717" lon="24.29275">\n \n <rtept lat="59.39717" lon="24.29275">\n \n <rtept lat="59.39717" lon="24.29275">\n \n <rtept lat="59.39717" lon="24.29278">\n \n <rtept lat="59.39715" lon="24.29305">\n \n <rtept lat="59.3971" lon="24.29333">\n \n <rtept lat="59.39703" lon="24.29373">\n \n <rtept lat="59.39697" lon="24.29393">\n \n <rtept lat="59.39687" lon="24.29407">\n \n <rtept lat="59.39677" lon="24.29408">\n \n <rtept lat="59.39666" lon="24.29415">\n \n <rtept lat="59.39654" lon="24.29421">\n \n <rtept lat="59.39654" lon="24.29421">\n \n <rtept lat="59.39654" lon="24.29421">\n \n <rtept lat="59.39634" lon="24.29429">\n \n <rtept lat="59.39621" lon="24.29434">\n \n <rtept lat="59.39608" lon="24.29434">\n \n <rtept lat="59.39595" lon="24.2943">\n \n <rtept lat="59.39579" lon="24.29421">\n \n <rtept lat="59.39571" lon="24.29416">\n \n <rtept lat="59.39571" lon="24.29416">\n \n <rtept lat="59.39571" lon="24.29416">\n \n <rtept lat="59.39556" lon="24.29407">\n \n <rtept lat="59.39542" lon="24.294">\n \n <rtept lat="59.3953" lon="24.29398">\n \n <rtept lat="59.39521" lon="24.29404">\n \n <rtept lat="59.39493" lon="24.29407">\n \n <rtept lat="59.3946" lon="24.29419">\n \n <rtept lat="59.39446" lon="24.29415">\n \n <rtept lat="59.39441" lon="24.29423">\n \n <rtept lat="59.39441" lon="24.29423">\n \n <rtept lat="59.39441" lon="24.29431">\n \n <rtept lat="59.39438" lon="24.2944">\n \n <rtept lat="59.39438" lon="24.2944">\n \n <rtept lat="59.39436" lon="24.2945">\n \n <rtept lat="59.39441" lon="24.29492">\n \n <rtept lat="59.39442" lon="24.29514">\n \n <rtept lat="59.39443" lon="24.29544">\n \n <rtept lat="59.39447" lon="24.29557">\n \n <rtept lat="59.39458" lon="24.29563">\n \n <rtept lat="59.39458" lon="24.29563">\n \n","Vesiveski tee, Vesiveski tee, Vesiveski tee, Vesiveski tee, , , Vesiveski tee, Vesiveski tee, Pargi allee, , , , , Merenuka, Merenuka, Merenuka, Spordi, Pargi allee, Lossi, Lossi, Kose, Kose, Pohla, Kose, Tallinn \u2014 Rannam\u00f5isa \u2014 Kloogaranna, Tallinn \u2014 Rannam\u00f5isa \u2014 Kloogaranna, V\u00e4\u00e4na tee, , Tallinn \u2014 Rannam\u00f5isa \u2014 Kloogaranna, Pargi allee, Pargi allee, Vesiveski tee, Pargi allee, Tallinn \u2014 Rannam\u00f5isa \u2014 Kloogaranna, L\u00f5okese tee, Orava tee, L\u00f5okese tee, Tallinn \u2014 Rannam\u00f5isa \u2014 Kloogaranna, Tallinn \u2014 Rannam\u00f5isa \u2014 Kloogaranna, , Tallinn \u2014 Rannam\u00f5isa \u2014 Kloogaranna, Pargimetsa tee, Pargimetsa tee, Tallinn \u2014 Rannam\u00f5isa \u2014 Kloogaranna, M\u00e4nnim\u00e4e tee, M\u00e4nnim\u00e4e tee, , , , , , , ","10116.6","3753.3"]},{"file":"/projektid/nextcloud/lib/private/AppFramework/Http/Dispatcher.php","line":99,"function":"executeController","class":"OC\AppFramework\Http\Dispatcher","type":"->","args":[{"class":"OCA\Maps\Controller\RoutingController"},"exportRoute"]},{"file":"/projektid/nextcloud/lib/private/AppFramework/App.php","line":125,"function":"dispatch","class":"OC\AppFramework\Http\Dispatcher","type":"->","args":[{"class":"OCA\Maps\Controller\RoutingController"},"exportRoute"]},{"file":"/projektid/nextcloud/lib/private/AppFramework/Routing/RouteActionHandler.php","line":47,"function":"main","class":"OC\AppFramework\App","type":"::","args":["RoutingController","exportRoute",{"class":"OC\AppFramework\DependencyInjection\DIContainer"},{"_route":"maps.routing.exportRoute"}]},{"function":"__invoke","class":"OC\AppFramework\Routing\RouteActionHandler","type":"->","args":[{"_route":"maps.routing.exportRoute"}]},{"file":"/projektid/nextcloud/lib/private/Route/Router.php","line":299,"function":"call_user_func","args":[{"class":"OC\AppFramework\Routing\RouteActionHandler"},{"_route":"maps.routing.exportRoute"}]},{"file":"/projektid/nextcloud/lib/base.php","line":1008,"function":"match","class":"OC\Route\Router","type":"->","args":["/apps/maps/exportRoute"]},{"file":"/projektid/nextcloud/index.php","line":38,"function":"handleRequest","class":"OC","type":"::","args":[]}],"File":"/projektid/nextcloud/lib/private/Files/Node/Folder.php","Line":185,"CustomMessage":"--"},"userAgent":"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Mobile Safari/537.36","version":"18.0.6.0"}"

I dug into "apps/maps/lib/Controller/RoutingController.php" and found the place the file is being created. It's around the line 111. I also tested the exporting functionality with less route points and I doubt that the problem is the file name. Now, the file name is being created out of the route parts. The more parts are there the longer is the file name. Until the file name is too long and no human-friendly error message will be reported in that case. I suggest that the file name handling must be reworked so that it won't contain all the parts of the route but so that the use can choose the file name if the name is too long. Or you put there some other automation in order to avoid the unuseful message that export fails. I had a route with 41 points. Try something similar in order to recreate the case!

piiskop avatar Jul 07 '20 10:07 piiskop

Hi, I worked arround by changing the line 106: $filename = substr($dateStr.' '.$name,0,60).'.gpx'; Now I can save the Map. Not the best solution, but works for me

HHerrgesell avatar Jul 27 '20 20:07 HHerrgesell

No it shouldn't work for you because you need to think of all the possible outcomes. Yes, you can save the map with my given data but this is just the tip of an iceberg.

The value of /$dateStr/ is a constant, so it doesn't affect the length of the file name. However, the value of /$name/ does. You're right so far.

Your proposed solution isn't only not the best one but dangerous. What happens if two routes have the same long list of first stops and only differ after 60 first characters of the concatenated name? Would there be an error message that the file couldn't be saved again? Or would the old file be overridden by the new data?

I suggest to check whether there's a file with that name already and if there is then add a number to the end of the file that is one bigger than the last number at the end of the file and of course, check again whether a file with that name exists and repeat recursively until you come to a brand new file name. Or offer an option for the user to choose a different file name in case there is a file with the given name already! Usually, it would be enough to only have the start and end in the file name and if they're the same then there could be more information using /via/. So a third solution and probably the best one would be to only store the date, start and end in the name and on duplicate name add /via/ to the end of the name until certain length, for instance 60 characters in total and then use an increment value at the end.

How did you come to the length of /60/? Is it a documented limit in Nextcloud?

One more thought: Do you like long filenames? If you have a long list of route files in /Nextcloud/ that all have the same first stops and starting point you can't distinguish them. This is why I think the /start/ - /end/ and /start/ - /via/ - /end/ and /start/ - /via/ - /via/

  • ... - /end/ solution would work out the best.//

*__________________________________________________________________ *

On 27.07.20 23:54, Henry wrote:

Hi, I worked arround by changing the line 106: |$filename = substr($dateStr.' '.$name,0,60).'.gpx';| Now I can save the Map. Not the best solution, but works for me

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/nextcloud/maps/issues/415#issuecomment-664633052, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADMQZEHD4XKMU2JBTTDVXHDR5XSQ3ANCNFSM4OSWHQGA.

piiskop avatar Jul 27 '20 21:07 piiskop

You are trying to create a filename with 704 characters (and since there are 32 high characters, in utf-8 those would be 16×3 + 10×2 + 6×2 - 32 + 704 = 752 bytes). It's not wonder you can't save a filename that long, since most *nix filesystem have a limit of 255 bytes in file names. You would probably need to use an external storage for this to work. So, what's the limit of the filesystem you are using?

The minimum imposed by POSIX is 14, by the way.

I don't think @MineHarry01 solution to be that bad. Yes, another path starting in the same way will overwrite it, which means he won't be able to export two paths starting at the same points at the very same second. So he can probably live with that. A better solution would be to do something like:

--- a/lib/Controller/RoutingController.php
+++ b/lib/Controller/RoutingController.php
@@ -114,6 +114,9 @@ class RoutingController extends Controller {
         $now = new \DateTime('now', $tz);
         $dateStr = $now->format('Y-m-d H:i:s (P)');
         $filename = $dateStr.' '.$name.'.gpx';
+        if (strlen($filename) > 100) {
+                $filename = $dateStr.' '.sha1($name).'.gpx';
+        }
 
         if ($mapsFolder->nodeExists($filename)) {
             $mapsFolder->get($filename)->delete();

(and yes, sha1 usage is fine for this usecase)

Although I'm a bit concerned in general about the way these filenames are being created. I would need to do some tests to confirm, but it looks vulnerable.

Keisial avatar Aug 14 '21 22:08 Keisial

So, what's the limit of the filesystem you are using?

This question is irrelevant as long filenames aren't well-manageable by humans anyway.

piiskop avatar Aug 15 '21 15:08 piiskop