xemacs -vanilla
M-.
will loop infinitely.  This is because
	(while (file-exists-p (setq cur (expand-file-name ".." cur)))
	  (let ((parent-tag-file (expand-file-name "TAGS" cur)))
	    (when (file-readable-p parent-tag-file)
	      (push parent-tag-file result))))
doesn't terminate.  On linux, (file-exists-p
(expand-file-name ".." "/")) returns t.
In my case, varible cur changes like this:
/home/penny
/home
/
/..
/
/..
/
file-exists-p returns t for all of them.
I just worked around this problem by setting
tags-check-parent-directories-for-tag-files to nil.
uname -a: Linux u 2.2.19 #1 Mon Apr 9 15:27:31 JST 2001 i686 unknown
../../xemacs/configure  '--with-mule'
XEmacs 21.5-b0 "alfalfa" configured for `i686-pc-linux'.
Compilation / Installation:
  Source code location:              /home/penny/work/xemacs
  Installation prefix:               /usr/local
  Operating system description file: `s/linux.h'
  Machine description file:          `m/intel386.h'
  Compiler:                          gcc -g -O3 -Wall -Wno-switch -Winline
-Wmissing-prototypes -Wshadow -Wsign-compare
  Relocating allocator for buffers:  no
  GNU version of malloc:             yes
    - Using Doug Lea's new malloc from the GNU C Library.
Window System:
  Compiling in support for the X window system:
    - X Windows headers location:                 /usr/X11R6/include
    - X Windows libraries location:               /usr/X11R6/lib
    - Handling WM_COMMAND properly.
  Compiling in support for the Athena widget set:
    - Athena headers location:                    X11/Xaw
    - Athena library to link:                     Xaw
  Using Lucid menubars.
  Using Lucid scrollbars.
  Using Athena dialog boxes.
  Using Athena native widgets.
TTY:
  Compiling in support for ncurses.
Images:
  Compiling in support for GIF  images (builtin).
  Compiling in support for XPM  images.
  Compiling in support for PNG  images.
  Compiling in support for JPEG images.
  Compiling in support for TIFF images.
Sound:
  Compiling in support for sound (native).
  Compiling in support for ESD (Enlightened Sound Daemon).
Databases:
  Compiling in support for Berkeley database.
Internationalization:
  Compiling in support for Mule (multi-lingual Emacs).
  Compiling in support for XIM (X11R5+ I18N input method).
    - Using raw Xlib to provide XIM support.
  Compiling in support for Canna on Mule.
Mail:
  Compiling in support for "dot-locking" mail spool file locking method.
Other Features:
  Compiling in support for dynamic shared object modules.
  Compiling in support for extra debugging code.
  WARNING: ---------------------------------------------------------
  WARNING: Compiling in support for runtime error checking.
  WARNING: XEmacs will run noticeably more slowly as a result.
  WARNING: Error checking is on by default for XEmacs beta releases.
  WARNING: ---------------------------------------------------------
-- 
Yoshiki Hayashi