time.LoadLocation with a bogus timezone name panics on Go App Engine; works locally

2,810 views
Skip to first unread message

Scott Parkerson

unread,
Jan 22, 2014, 4:25:51 PM1/22/14
to google-ap...@googlegroups.com
Discovered this while trying to discover which time zones the Go App Engine knows about. It's simple to reproduce; just try calling time.LoadLocation("doesnotexist") on App Engine; this will cause the app engine instance to panic and die with no log messages other than a 500 Internal Service Error. Trying to use defer/recover doesn't seem to work, either.

This works fine using the Go app engine SDK in the local development server; time.LoadLocation("doesnotexist") will return with err != nil, as expected.

--sgp


Glenn Lewis

unread,
Jan 23, 2014, 11:02:58 AM1/23/14
to Scott Parkerson, google-appengine-go
If I recall correctly, this was found and fixed.
What version (number, platform, architecture) of the SDK are you using?
I will investigate which version has the fix.
Thanks.
-- Glenn


--
You received this message because you are subscribed to the Google Groups "google-appengine-go" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-appengin...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.



--
Glenn Lewis | Software Engineer | gml...@google.com | 949-274-8923

Glenn Lewis

unread,
Jan 23, 2014, 11:27:54 AM1/23/14
to Scott Parkerson, google-appengine-go

I apologize for not reading carefully enough. You are correct that the SDK version does not affect production.

This will be fixed when 1.9.0 is rolled out to production. I do not have a date at this moment.

-- Glenn

Scott Parkerson

unread,
Jan 23, 2014, 11:41:48 AM1/23/14
to google-ap...@googlegroups.com, Scott Parkerson
That's fine. In the meantime, is there an exhaustive list of timezones that time.LoadLocation *will* work with under the current rolled-out SDK?

Thanks,
Scott

David Symonds

unread,
Jan 23, 2014, 12:13:07 PM1/23/14
to Scott Parkerson, google-appengine-go
On 23 January 2014 08:41, Scott Parkerson <sc...@parkerson.net> wrote:

> That's fine. In the meantime, is there an exhaustive list of timezones that
> time.LoadLocation *will* work with under the current rolled-out SDK?

You can look under /usr/share/zoneinfo for what files are there.

Fabrizio Milo aka misto

unread,
Jan 23, 2014, 12:25:36 PM1/23/14
to David Symonds, Scott Parkerson, google-appengine-go
All of the element of this list looks like is working on golang and macosx.
Created / filtered by just doing a for loop and trying to load each
location. Hope it helps.

["Africa/Abidjan", "Africa/Accra", "Africa/Addis_Ababa",
"Africa/Algiers", "Africa/Asmera", "Africa/Bamako", "Africa/Bangui",
"Africa/Banjul", "Africa/Bissau", "Africa/Blantyre",
"Africa/Brazzaville", "Africa/Bujumbura", "Africa/Cairo",
"Africa/Casablanca", "Africa/Ceuta", "Africa/Conakry", "Africa/Dakar",
"Africa/Dar_es_Salaam", "Africa/Djibouti", "Africa/Douala",
"Africa/El_Aaiun", "Africa/Freetown", "Africa/Gaborone",
"Africa/Harare", "Africa/Johannesburg", "Africa/Kampala",
"Africa/Khartoum", "Africa/Kigali", "Africa/Kinshasa", "Africa/Lagos",
"Africa/Libreville", "Africa/Lome", "Africa/Luanda",
"Africa/Lubumbashi", "Africa/Lusaka", "Africa/Malabo",
"Africa/Maputo", "Africa/Maseru", "Africa/Mbabane",
"Africa/Mogadishu", "Africa/Monrovia", "Africa/Nairobi",
"Africa/Ndjamena", "Africa/Niamey", "Africa/Nouakchott",
"Africa/Ouagadougou", "Africa/Porto-Novo", "Africa/Sao_Tome",
"Africa/Timbuktu", "Africa/Tripoli", "Africa/Tunis",
"Africa/Windhoek", "America/Adak", "America/Anchorage",
"America/Anguilla", "America/Antigua", "America/Araguaina",
"America/Aruba", "America/Asuncion", "America/Atka", "America/Bahia",
"America/Barbados", "America/Belem", "America/Belize",
"America/Boa_Vista", "America/Bogota", "America/Boise",
"America/Buenos_Aires", "America/Cambridge_Bay",
"America/Campo_Grande", "America/Cancun", "America/Caracas",
"America/Catamarca", "America/Cayenne", "America/Cayman",
"America/Chicago", "America/Chihuahua", "America/Cordoba",
"America/Costa_Rica", "America/Cuiaba", "America/Curacao",
"America/Danmarkshavn", "America/Dawson", "America/Dawson_Creek",
"America/Denver", "America/Detroit", "America/Dominica",
"America/Edmonton", "America/Eirunepe", "America/El_Salvador",
"America/Ensenada", "America/Fort_Wayne", "America/Fortaleza",
"America/Glace_Bay", "America/Godthab", "America/Goose_Bay",
"America/Grand_Turk", "America/Grenada", "America/Guadeloupe",
"America/Guatemala", "America/Guayaquil", "America/Guyana",
"America/Halifax", "America/Havana", "America/Hermosillo",
"America/Indiana/Indianapolis", "America/Indiana/Knox",
"America/Indiana/Marengo", "America/Indiana/Vevay",
"America/Indianapolis", "America/Inuvik", "America/Iqaluit",
"America/Jamaica", "America/Jujuy", "America/Juneau",
"America/Kentucky/Louisville", "America/Kentucky/Monticello",
"America/Knox_IN", "America/La_Paz", "America/Lima",
"America/Los_Angeles", "America/Louisville", "America/Maceio",
"America/Managua", "America/Manaus", "America/Martinique",
"America/Mazatlan", "America/Mendoza", "America/Menominee",
"America/Merida", "America/Mexico_City", "America/Miquelon",
"America/Monterrey", "America/Montevideo", "America/Montreal",
"America/Montserrat", "America/Nassau", "America/New_York",
"America/Nipigon", "America/Nome", "America/Noronha",
"America/North_Dakota/Center", "America/Panama",
"America/Pangnirtung", "America/Paramaribo", "America/Phoenix",
"America/Port-au-Prince", "America/Port_of_Spain",
"America/Porto_Acre", "America/Porto_Velho", "America/Puerto_Rico",
"America/Rainy_River", "America/Rankin_Inlet", "America/Recife",
"America/Regina", "America/Rio_Branco", "America/Rosario",
"America/Santiago", "America/Santo_Domingo", "America/Sao_Paulo",
"America/Scoresbysund", "America/Shiprock", "America/St_Johns",
"America/St_Kitts", "America/St_Lucia", "America/St_Thomas",
"America/St_Vincent", "America/Swift_Current", "America/Tegucigalpa",
"America/Thule", "America/Thunder_Bay", "America/Tijuana",
"America/Toronto", "America/Tortola", "America/Vancouver",
"America/Virgin", "America/Whitehorse", "America/Winnipeg",
"America/Yakutat", "America/Yellowknife", "Antarctica/Casey",
"Antarctica/Davis", "Antarctica/DumontDUrville", "Antarctica/Mawson",
"Antarctica/McMurdo", "Antarctica/Palmer", "Antarctica/Rothera",
"Antarctica/South_Pole", "Antarctica/Syowa", "Antarctica/Vostok",
"Arctic/Longyearbyen", "Asia/Aden", "Asia/Almaty", "Asia/Amman",
"Asia/Anadyr", "Asia/Aqtau", "Asia/Aqtobe", "Asia/Ashgabat",
"Asia/Ashkhabad", "Asia/Baghdad", "Asia/Bahrain", "Asia/Baku",
"Asia/Bangkok", "Asia/Beirut", "Asia/Bishkek", "Asia/Brunei",
"Asia/Calcutta", "Asia/Choibalsan", "Asia/Chongqing",
"Asia/Chungking", "Asia/Colombo", "Asia/Dacca", "Asia/Damascus",
"Asia/Dhaka", "Asia/Dili", "Asia/Dubai", "Asia/Dushanbe", "Asia/Gaza",
"Asia/Harbin", "Asia/Hong_Kong", "Asia/Hovd", "Asia/Irkutsk",
"Asia/Istanbul", "Asia/Jakarta", "Asia/Jayapura", "Asia/Jerusalem",
"Asia/Kabul", "Asia/Kamchatka", "Asia/Karachi", "Asia/Kashgar",
"Asia/Katmandu", "Asia/Krasnoyarsk", "Asia/Kuala_Lumpur",
"Asia/Kuching", "Asia/Kuwait", "Asia/Macao", "Asia/Macau",
"Asia/Magadan", "Asia/Makassar", "Asia/Manila", "Asia/Muscat",
"Asia/Nicosia", "Asia/Novosibirsk", "Asia/Omsk", "Asia/Oral",
"Asia/Phnom_Penh", "Asia/Pontianak", "Asia/Pyongyang", "Asia/Qatar",
"Asia/Qyzylorda", "Asia/Rangoon", "Asia/Riyadh", "Asia/Riyadh87",
"Asia/Riyadh88", "Asia/Riyadh89", "Asia/Saigon", "Asia/Sakhalin",
"Asia/Samarkand", "Asia/Seoul", "Asia/Shanghai", "Asia/Singapore",
"Asia/Taipei", "Asia/Tashkent", "Asia/Tbilisi", "Asia/Tehran",
"Asia/Tel_Aviv", "Asia/Thimbu", "Asia/Thimphu", "Asia/Tokyo",
"Asia/Ujung_Pandang", "Asia/Ulaanbaatar", "Asia/Ulan_Bator",
"Asia/Urumqi", "Asia/Vientiane", "Asia/Vladivostok", "Asia/Yakutsk",
"Asia/Yekaterinburg", "Asia/Yerevan", "Atlantic/Azores",
"Atlantic/Bermuda", "Atlantic/Canary", "Atlantic/Cape_Verde",
"Atlantic/Faeroe", "Atlantic/Jan_Mayen", "Atlantic/Madeira",
"Atlantic/Reykjavik", "Atlantic/South_Georgia", "Atlantic/St_Helena",
"Atlantic/Stanley", "Australia/ACT", "Australia/Adelaide",
"Australia/Brisbane", "Australia/Broken_Hill", "Australia/Canberra",
"Australia/Darwin", "Australia/Hobart", "Australia/LHI",
"Australia/Lindeman", "Australia/Lord_Howe", "Australia/Melbourne",
"Australia/NSW", "Australia/North", "Australia/Perth",
"Australia/Queensland", "Australia/South", "Australia/Sydney",
"Australia/Tasmania", "Australia/Victoria", "Australia/West",
"Australia/Yancowinna", "Brazil/Acre", "Brazil/DeNoronha",
"Brazil/East", "Brazil/West", "CET", "CST6CDT", "Canada/Atlantic",
"Canada/Central", "Canada/East-Saskatchewan", "Canada/Eastern",
"Canada/Mountain", "Canada/Newfoundland", "Canada/Pacific",
"Canada/Saskatchewan", "Canada/Yukon", "Chile/Continental",
"Chile/EasterIsland", "Cuba", "EET", "EST", "EST5EDT", "Egypt",
"Eire", "Etc/GMT", "Etc/GMT+0", "Etc/GMT+1", "Etc/GMT+10",
"Etc/GMT+11", "Etc/GMT+12", "Etc/GMT+2", "Etc/GMT+3", "Etc/GMT+4",
"Etc/GMT+5", "Etc/GMT+6", "Etc/GMT+7", "Etc/GMT+8", "Etc/GMT+9",
"Etc/GMT-0", "Etc/GMT-1", "Etc/GMT-10", "Etc/GMT-11", "Etc/GMT-12",
"Etc/GMT-13", "Etc/GMT-14", "Etc/GMT-2", "Etc/GMT-3", "Etc/GMT-4",
"Etc/GMT-5", "Etc/GMT-6", "Etc/GMT-7", "Etc/GMT-8", "Etc/GMT-9",
"Etc/GMT0", "Etc/Greenwich", "Etc/UCT", "Etc/UTC", "Etc/Universal",
"Etc/Zulu", "Europe/Amsterdam", "Europe/Andorra", "Europe/Athens",
"Europe/Belfast", "Europe/Belgrade", "Europe/Berlin",
"Europe/Bratislava", "Europe/Brussels", "Europe/Bucharest",
"Europe/Budapest", "Europe/Chisinau", "Europe/Copenhagen",
"Europe/Dublin", "Europe/Gibraltar", "Europe/Helsinki",
"Europe/Istanbul", "Europe/Kaliningrad", "Europe/Kiev",
"Europe/Lisbon", "Europe/Ljubljana", "Europe/London",
"Europe/Luxembourg", "Europe/Madrid", "Europe/Malta", "Europe/Minsk",
"Europe/Monaco", "Europe/Moscow", "Europe/Nicosia", "Europe/Oslo",
"Europe/Paris", "Europe/Prague", "Europe/Riga", "Europe/Rome",
"Europe/Samara", "Europe/San_Marino", "Europe/Sarajevo",
"Europe/Simferopol", "Europe/Skopje", "Europe/Sofia",
"Europe/Stockholm", "Europe/Tallinn", "Europe/Tirane",
"Europe/Tiraspol", "Europe/Uzhgorod", "Europe/Vaduz",
"Europe/Vatican", "Europe/Vienna", "Europe/Vilnius", "Europe/Warsaw",
"Europe/Zagreb", "Europe/Zaporozhye", "Europe/Zurich", "GB",
"GB-Eire", "GMT", "GMT0", "Greenwich", "HST", "Hongkong", "Iceland",
"Indian/Antananarivo", "Indian/Chagos", "Indian/Christmas",
"Indian/Cocos", "Indian/Comoro", "Indian/Kerguelen", "Indian/Mahe",
"Indian/Maldives", "Indian/Mauritius", "Indian/Mayotte",
"Indian/Reunion", "Iran", "Israel", "Jamaica", "Japan", "Kwajalein",
"Libya", "MET", "MST", "MST7MDT", "Mexico/BajaNorte",
"Mexico/BajaSur", "Mexico/General", "Mideast/Riyadh87",
"Mideast/Riyadh88", "Mideast/Riyadh89", "NZ", "NZ-CHAT", "Navajo",
"PRC", "PST8PDT", "Pacific/Apia", "Pacific/Auckland",
"Pacific/Chatham", "Pacific/Easter", "Pacific/Efate",
"Pacific/Enderbury", "Pacific/Fakaofo", "Pacific/Fiji",
"Pacific/Funafuti", "Pacific/Galapagos", "Pacific/Gambier",
"Pacific/Guadalcanal", "Pacific/Guam", "Pacific/Honolulu",
"Pacific/Johnston", "Pacific/Kiritimati", "Pacific/Kosrae",
"Pacific/Kwajalein", "Pacific/Majuro", "Pacific/Marquesas",
"Pacific/Midway", "Pacific/Nauru", "Pacific/Niue", "Pacific/Norfolk",
"Pacific/Noumea", "Pacific/Pago_Pago", "Pacific/Palau",
"Pacific/Pitcairn", "Pacific/Ponape", "Pacific/Port_Moresby",
"Pacific/Rarotonga", "Pacific/Saipan", "Pacific/Samoa",
"Pacific/Tahiti", "Pacific/Tarawa", "Pacific/Tongatapu",
"Pacific/Truk", "Pacific/Wake", "Pacific/Wallis", "Pacific/Yap",
"Poland", "Portugal", "ROK", "Singapore", "Turkey", "UCT",
"US/Alaska", "US/Aleutian", "US/Arizona", "US/Central",
"US/East-Indiana", "US/Eastern", "US/Hawaii", "US/Indiana-Starke",
"US/Michigan", "US/Mountain", "US/Pacific", "US/Samoa", "UTC",
"Universal", "W-SU", "WET", "Zulu"];
> --
> You received this message because you are subscribed to the Google Groups "google-appengine-go" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to google-appengin...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.



--
LinkedIn: http://linkedin.com/in/fmilo
Twitter: @fabmilo
Github: http://github.com/Mistobaan/
-----------------------
Simplicity, consistency, and repetition - that's how you get through.
(Jack Welch)
Perfection must be reached by degrees; she requires the slow hand of
time (Voltaire)
The best way to predict the future is to invent it (Alan Kay)

Scott Parkerson

unread,
Jan 23, 2014, 1:37:14 PM1/23/14
to google-ap...@googlegroups.com, David Symonds, Scott Parkerson
Ok, I've put up a little piece of code in my app engine sandbox and brute tested all of the zone names in version 2013i of the zone info database to come up with the following list that will *not* work under the current release of Go App Engine. The good news is that it's only 25 zone names out of a total of 579 that will not work.

Here's the list of zones that do *not* work if you try to use time.LoadLocation on the currently deployed Go App Engine.

  • Africa/Juba
  • America/Creston
  • America/Kralendijk
  • America/Lower_Princes
  • America/Metlakatla
  • America/North_Dakota/Beulah
  • America/Sitka
  • Asia/Hebron
  • Asia/Khandyga
  • Asia/Ust-Nera
  • Etc/GMT+0
  • Etc/GMT+1
  • Etc/GMT+10
  • Etc/GMT+11
  • Etc/GMT+12
  • Etc/GMT+2
  • Etc/GMT+3
  • Etc/GMT+4
  • Etc/GMT+5
  • Etc/GMT+6
  • Etc/GMT+7
  • Etc/GMT+8
  • Etc/GMT+9
  • Europe/Busingen
  • GMT+0
Thanks for all who answered the original question.

--sgp
> To unsubscribe from this group and stop receiving emails from it, send an email to google-appengine-go+unsub...@googlegroups.com.

David Symonds

unread,
Jan 23, 2014, 2:19:05 PM1/23/14
to Scott Parkerson, google-appengine-go
Sorry for the bother. This will be fixed properly soon.

Franck Durand

unread,
Feb 25, 2019, 6:14:41 PM2/25/19
to google-appengine-go
Was this ever fixed ?

We currently face this issue on the app engine, with the following error when calling time.LoadLocation("Europe/Amsterdam") :

open /usr/local/go/lib/time/zoneinfo.zip: no such file or directory

For now we use a workaround with time.FixedZone("Europe/Amsterdam, 3600) to get a time.Location, but this is short as it's a DST location.

In local no problem.

Steven Buss

unread,
Feb 25, 2019, 6:23:37 PM2/25/19
to Franck Durand, google-appengine-go
I think this is a regression in Go 1.11. I will fix this and it should be rolled out within a few weeks.

--
You received this message because you are subscribed to the Google Groups "google-appengine-go" group.
To unsubscribe from this group and stop receiving emails from it, send an email to google-appengin...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/google-appengine-go/c4383bee-a211-49f2-8796-0d128bdabf26%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages