A) When examining an router's configuration, check the following:
1) All interfaces have the correct addresses and masks?
2) The configure network area statements have the correct inverse masks to match the correct interfaces?
3) The configure network area statements put all interfaces into the correct areas?
B) When examining neighborship, consider the following questions:
1) Are Hellos being sent from both neighbors?
2) Are the timers(Dead and Hello) set the same between neighbors?
3) Are the interfaces configured on the same subnet?
4) Are the neighboring interfaces of the same network type (Broadcast, Point to point,Point to multi-point)
5) Is a router attempting to form an adjacency with a neighbor's secondary address?
6) If authentication is being used, is the authentication type the same between neighbors? Are the passwords same?
7) Are any access lists blocking OSPF?
8) If the adjacency is across a virtual link, is the link configured within a stub area?
9) Is unique Router Id configured in the your As?
10) Is MTU size same on the interface?
C) If a neighbor or adjacency is seeing unstable, you can monitor adjacencies using the command "debug ip ospf adj"
D)The state changes of a neighbor can be monitored by adding the command "log-adjacency-changes [detail]" under a router's OSPF configuration.
E) OSPF Errors, Warnings, and Log Messages
Receiving "ospf unknown protocol" error message
Receiving "Mismatch Authentication type"
Receiving "%ospf-4-NONEIGHBOR" error message
Receiving "ospf-5-ADJCHG" error message
Receiving "OSPF: Hello from x.x.x.x with mismatched NSSA option bit"
F) If you suspect that a link-state database is corrupted or that two databases are not synchronized, you can use the "show ip ospf database database-summary" command to observe the number of LSAs in each router's database.