Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Apps won't run on GAE - 'unable to bind to localhost:0'

I recently upgraded Google App Engine to 1.7.7. and have not been able to run any apps locally since. This includes apps that worked before the update and apps I've created since. I haven't come across any other references to this specific problem 'Unable to bind to localhost:0,' so any insights into clearing this hurdle would be much appreciated.

I'm including the log for a new 'Hello World' app I added today. Using Python 2.7 via ActivePython on OS X 10.6.8.

*** Running dev_appserver with the following flags:
    --skip_sdk_update_check=yes --port=12084 --admin_port=8007
Python command: /usr/local/bin/pythonw
INFO     2013-04-13 06:37:31,627 devappserver2.py:498] Skipping SDK update check.
WARNING  2013-04-13 06:37:31,691 api_server.py:328] Could not initialize images API; you are likely missing the Python "PIL" module.
WARNING  2013-04-13 06:37:31,692 simple_search_stub.py:977] Could not read search indexes from /var/folders/ag/ag25hkLMFEG1p0pLBBX5Mk+++TI/-Tmp-/appengine.binderror.b/search_indexes
Traceback (most recent call last):
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/dev_appserver.py", line 193, in <module>
    _run_file(__file__, globals())
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/dev_appserver.py", line 189, in _run_file
    execfile(script_path, globals_)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 662, in <module>
    main()
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 655, in main
    dev_server.start(options)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 626, in start
    apis.start()
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/devappserver2/api_server.py", line 151, in start
    super(APIServer, self).start()
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/devappserver2/wsgi_server.py", line 296, in start
    raise BindError('Unable to bind %s:%s' % self.bind_addr)
google.appengine.tools.devappserver2.wsgi_server.BindError: Unable to bind localhost:0

Update: I was able to deploy the 'Hello World' app through GAE Launcher without any issues. I ran the command errinfo -c -n GoogleAppEngineLauncher.app, which uses the included dtrace, and then attempted to run three apps, then closed them. Here is the output [which is somewhat beyond me]:

           EXEC          SYSCALL  ERR  COUNT  DESC
 GoogleAppEngine          madvise   12      1  Cannot allocate memory 
 GoogleAppEngine __disable_threadsignal    0      2 
 GoogleAppEngine           access    0      3 
 GoogleAppEngine bsdthread_register   22      3  Invalid argument 
 GoogleAppEngine            chdir    0      3 
 GoogleAppEngine   close_nocancel    0      3 
 GoogleAppEngine   fcntl_nocancel    0      3 
 GoogleAppEngine             fork    0      3 
 GoogleAppEngine    getdtablesize    0      3 
 GoogleAppEngine           getpid    0      3 
 GoogleAppEngine    open_nocancel    0      3 
 GoogleAppEngine           setsid    0      3 
 GoogleAppEngine      sigprocmask    0      3 
 GoogleAppEngine           stat64    0      3 
 GoogleAppEngine            wait4    0      3 
 GoogleAppEngine       workq_open    0      3 
 GoogleAppEngine            write    0      3 
 GoogleAppEngine          lstat64    0      4 
 GoogleAppEngine             pipe    0      6 
 GoogleAppEngine    thread_selfid    0      6 
 GoogleAppEngine     gettimeofday    0      7 
 GoogleAppEngine             dup2    0      9 
 GoogleAppEngine          madvise    0     17 
 GoogleAppEngine           munmap    0     31 
 GoogleAppEngine             mmap    0     33 
 GoogleAppEngine        sigaction    0     87 
 GoogleAppEngine      getattrlist    0    102 
 GoogleAppEngine          fstat64    0    118 
 GoogleAppEngine             open    0    118 
 GoogleAppEngine          geteuid    0    208 
 GoogleAppEngine              dup    0  10418 
 GoogleAppEngine             read    0  10532 
 GoogleAppEngine            close    0  10584 
 GoogleAppEngine workq_kernreturn    0  20752 
 GoogleAppEngine            close    9  21459  Bad file descriptor 
 GoogleAppEngine           kevent    0  72543 

Update 2, 16 August: I installed the newest version of GAE Launcher [1.8.3] and everything now works.

like image 734
Yossarian Avatar asked Apr 13 '13 06:04

Yossarian


People also ask

What is App Engine flexible environment?

App Engine allows developers to focus on what they do best: writing code. Based on Compute Engine, the App Engine flexible environment automatically scales your app up and down while also balancing the load.


3 Answers

For people who got Unknown key when running fuser -k 8080/tcp, here is a solution which worked for me:

lsof -P | grep ':8080' | awk '{print $2}' | xargs kill -9
like image 161
Salvador Dali Avatar answered Oct 26 '22 01:10

Salvador Dali


your socket is already in use. kill it and it should be resolved.fuser -k 8080/tcp

for example the above code kills and frees the socket at 8080

like image 41
Ray Avatar answered Oct 26 '22 02:10

Ray


Test it in another port adding --port NUMBER when starting the server.

like image 45
Mario Jorge Valle Avatar answered Oct 26 '22 01:10

Mario Jorge Valle