  In this work, we consider the low rank decomposition (SDPR) of general convex
semidefinite programming problems (SDP) that contain both a positive
semidefinite matrix and a nonnegative vector as variables. We develop a
rank-support-adaptive feasible method to solve (SDPR) based on Riemannian
optimization. The method is able to escape from a saddle point to ensure its
convergence to a global optimal solution for generic constraint vectors. We
prove its global convergence and local linear convergence without assuming that
the objective function is twice differentiable. Due to the special structure of
the low-rank SDP problem, our algorithm can achieve better iteration complexity
than existing results for more general smooth nonconvex problems. In order to
overcome the degeneracy issues of SDP problems, we develop two strategies based
on random perturbation and dual refinement. These techniques enable us to solve
some primal degenerate SDP problems efficiently, for example, Lov\'{a}sz theta
SDPs. Our work is a step forward in extending the application range of
Riemannian optimization approaches for solving SDP problems. Numerical
experiments are conducted to verify the efficiency and robustness of our
method.
