Is There bug of goapp command?

190 views
Skip to first unread message

Kazumin Kazumin

unread,
May 28, 2016, 11:41:48 AM5/28/16
to Google App Engine
i might have found a bug in the latest SDK for goapp command.
Since I am Japanese , I do not know whether English is transmitted , but you try to question

My spec is
osx el capitan 10.11 64 bit

go version go1.6 darwin/amd64

go_appengine where is "/Users/kinoshita/gcpug/gae1/go_appengine"

export GOPATH=$HOME/go

export PATH="/Users/kinoshita/go/bin:$PATH"

export GOBIN=$PATH:$GOPATH/bin

I installd goapp command SDK version 1.9.38 - 2016-05-25 in my path 

I execued git clone -b part1-helloworld https://github.com/GoogleCloudPlatform/appengine-guestbook-go.git helloworld on /Users/kinoshita/gcpug/gae1.




my enviroment is 

<pre>

[kinoshita@Mac] goapp env

GOARCH="amd64"

GOBIN=""

GOEXE=""

GOHOSTARCH="amd64"

GOHOSTOS="darwin"

GOOS="darwin"

GOPATH="/Users/kinoshita/go"

GORACE=""

GOROOT="/Users/kinoshita/gcpug/gae1/go_appengine/goroot"

GOTOOLDIR="/Users/kinoshita/gcpug/gae1/go_appengine/goroot/pkg/tool/darwin_amd64"

GO15VENDOREXPERIMENT="1"

CC="clang"

GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fno-common"

CXX="clang++"

CGO_ENABLED="1"

</pre>



i executed to serve test httpd

<pre>

[kinoshita@Mac] goapp serve helloworld

INFO     2016-05-28 15:32:03,904 devappserver2.py:769] Skipping SDK update check.

INFO     2016-05-28 15:32:04,088 api_server.py:205] Starting API server at: http://localhost:50319

INFO     2016-05-28 15:32:04,089 api_server.py:648] Applying all pending transactions and saving the datastore

INFO     2016-05-28 15:32:04,089 api_server.py:651] Saving search indexes

Traceback (most recent call last):

  File "/Users/kinoshita/gcpug/gae1/go_appengine/dev_appserver.py", line 84, in <module>

    _run_file(__file__, globals())

  File "/Users/kinoshita/gcpug/gae1/go_appengine/dev_appserver.py", line 80, in _run_file

    execfile(_PATHS.script_file(script_name), globals_)

  File "/Users/kinoshita/gcpug/gae1/go_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 1040, in <module>

    main()

  File "/Users/kinoshita/gcpug/gae1/go_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 1033, in main

    dev_server.start(options)

  File "/Users/kinoshita/gcpug/gae1/go_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 824, in start

    self._dispatcher.start(options.api_host, apis.port, request_data)

  File "/Users/kinoshita/gcpug/gae1/go_appengine/google/appengine/tools/devappserver2/dispatcher.py", line 193, in start

    _module, port = self._create_module(module_configuration, port)

  File "/Users/kinoshita/gcpug/gae1/go_appengine/google/appengine/tools/devappserver2/dispatcher.py", line 278, in _create_module

    threadsafe_override=threadsafe_override)

  File "/Users/kinoshita/gcpug/gae1/go_appengine/google/appengine/tools/devappserver2/module.py", line 1156, in __init__

    super(AutoScalingModule, self).__init__(**kwargs)

  File "/Users/kinoshita/gcpug/gae1/go_appengine/google/appengine/tools/devappserver2/module.py", line 538, in __init__

    self._module_configuration)

  File "/Users/kinoshita/gcpug/gae1/go_appengine/google/appengine/tools/devappserver2/module.py", line 235, in _create_instance_factory

    module_configuration=module_configuration)

  File "/Users/kinoshita/gcpug/gae1/go_appengine/google/appengine/tools/devappserver2/go_runtime.py", line 115, in __init__

    self._module_configuration)

  File "/Users/kinoshita/gcpug/gae1/go_appengine/google/appengine/tools/devappserver2/go_application.py", line 164, in __init__

    self._arch = self._get_architecture()

  File "/Users/kinoshita/gcpug/gae1/go_appengine/google/appengine/tools/devappserver2/go_application.py", line 197, in _get_architecture

    for platform in os.listdir(os.path.join(GOROOT, 'pkg', 'tool')):

OSError: [Errno 2] No such file or directory: '/Users/kinoshita/gcpug/gae1/goroot/pkg/tool'

error while running dev_appserver.py: exit status 1

</pre>


but.No such file or directory: '/Users/kinoshita/gcpug/gae1/goroot/pkg/tool'


i change code


_SDKROOT = os.path.dirname(os.path.dirname(google.__file__))  

to 

_SDKROOT = os.path.dirname(google.__file__)) 


in  /Users/kinoshita/gcpug/gae1/go_appengine/google/appengine/tools/devappserver2/go_application.py  

on 35


and then it move.


i think as os.path.dirname good only once:)


Nick (Cloud Platform Support)

unread,
May 31, 2016, 10:43:37 AM5/31/16
to Google App Engine
Hey Kazumin,

No problem about the translation, a lot of computing is a universal language (although for historical reasons most languages have an english basis), so I can understand the issue here. I hope this message is readable when translated to Japanese!

One thing to mention before I reply, is that this forum is intended for more high level discussion of the platform and services, design patterns and architecture questions, while a question like this, showing a specific technical problem, should be posted to Stack Overflow or the Public Issue Tracker (depending on whether you think it's your own error or can show that it's a problem in the development / production environment). We monitor those forums as well, but at any rate, I'll be happy to assist for this thread.

So,

It seems as though, on your system, os.path.dirname(google.__file__) is returning "/Users/kinoshita/gcpug/gae1/go_appengine/" since os.path.dirname(os.path.dirname(google.__file__)) is equal to "/Users/kinoshita/gcpug/gae1/" (further lines in the file* add /goroot/pkg/tool to this path, leading to the import error, since '/Users/kinoshita/gcpug/gae1/goroot/pkg/tool' doesn't exist.

This is strange, since according to the file structure in the current version (1.9.38) of the SDKos.path.dirname(google.__file__) should have returned "/Users/kinoshita/gcpug/gae1/go_appengine/google/", since google.__file__ should be "/Users/kinoshita/gcpug/gae1/go_appengine/google/__init__.py"

Could you post the output of "tree /Users/kinoshita/gcpug/gae1/"?

Sincerely,

Nick
Cloud Platform Community Support

* (
GOROOT = os.path.join(_SDKROOT, 'goroot') and
 for platform in os.listdir(os.path.join(GOROOT, 'pkg', 'tool')) )

Nick (Cloud Platform Support)

unread,
May 31, 2016, 2:04:50 PM5/31/16
to Google App Engine
Hey Kazumin,

There's a Public Issue Tracker thread for the SDK patch that you had independently discovered which also has an analysis of its cause. We'll be working on evaluating this and will post updates to that thread, so feel free to follow it by clicking the "star" icon in at the top of the thread.

Cheers,


Nick
Cloud Platform Community Support

Kazumin Kazumin

unread,
May 31, 2016, 9:17:08 PM5/31/16
to Google App Engine

Hey ! NIck , thank you for response.

I attached tree.txt which is  out put of  "tree /Users/kinoshita/gcpug/gae1/".


2016年5月31日火曜日 23時43分37秒 UTC+9 Nick (Cloud Platform Support):
tree.txt

Nick (Cloud Platform Support)

unread,
Jun 7, 2016, 4:56:59 PM6/7/16
to Google App Engine
Hey Kazumin,

Yes, this looks normal. Please be sure to follow the Public Issue Tracker thread for updates on this issue, and in the meantime, either continuing with your patched SDK or downloading and installing an earlier version of the SDK will work.

Cheers,


Nick
Cloud Platform Community Support

Reply all
Reply to author
Forward
0 new messages