[Samsung Galaxy Gio GT-S5660] Nytmarez:
I have come across a bug with the Clock in CM9 in case of an upgrade from CM7.2. Every time the phone starts, I get the following message:

"Unfortunately, Clock has stopped."

After I investigated the log, it turned out that a few SQLite-related RuntimeExceptions are being thrown. Here's part of the log that shows the exceptions:

E/SQLiteOpenHelper( 2471): Couldn't open alarms.db for writing (will try read-only):
E/SQLiteOpenHelper( 2471): android.database.sqlite.SQLiteException: Can't downgrade database from version 7 to 5
E/SQLiteOpenHelper( 2471):	at android.database.sqlite.SQLiteOpenHelper.onDowngrade(SQLiteOpenHelper.java:307)
E/SQLiteOpenHelper( 2471):	at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:168)
E/SQLiteOpenHelper( 2471):	at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:231)
E/SQLiteOpenHelper( 2471):	at com.android.deskclock.AlarmProvider.query(AlarmProvider.java:72)
E/SQLiteOpenHelper( 2471):	at android.content.ContentProvider$Transport.query(ContentProvider.java:178)
E/SQLiteOpenHelper( 2471):	at android.content.ContentResolver.query(ContentResolver.java:316)
E/SQLiteOpenHelper( 2471):	at com.android.deskclock.Alarms.getAlarmsCursor(Alarms.java:135)
E/SQLiteOpenHelper( 2471):	at com.android.deskclock.AlarmClock.onCreate(AlarmClock.java:199)
E/SQLiteOpenHelper( 2471):	at android.app.Activity.performCreate(Activity.java:4465)
E/SQLiteOpenHelper( 2471):	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
E/SQLiteOpenHelper( 2471):	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
E/SQLiteOpenHelper( 2471):	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
E/SQLiteOpenHelper( 2471):	at android.app.ActivityThread.access$600(ActivityThread.java:123)
E/SQLiteOpenHelper( 2471):	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
E/SQLiteOpenHelper( 2471):	at android.os.Handler.dispatchMessage(Handler.java:99)
E/SQLiteOpenHelper( 2471):	at android.os.Looper.loop(Looper.java:137)
E/SQLiteOpenHelper( 2471):	at android.app.ActivityThread.main(ActivityThread.java:4424)
E/SQLiteOpenHelper( 2471):	at java.lang.reflect.Method.invokeNative(Native Method)
E/SQLiteOpenHelper( 2471):	at java.lang.reflect.Method.invoke(Method.java:511)
E/SQLiteOpenHelper( 2471):	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787)
E/SQLiteOpenHelper( 2471):	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:554)
E/SQLiteOpenHelper( 2471):	at dalvik.system.NativeStart.main(Native Method)D/AndroidRuntime( 2471): Shutting down VM
W/dalvikvm( 2471): threadid=1: thread exiting with uncaught exception (group=0x40a1a1f8)
E/AndroidRuntime( 2471): FATAL EXCEPTION: main
E/AndroidRuntime( 2471): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.deskclock/com.android.deskclock.AlarmClock}: android.database.sqlite.SQLiteException: Can't upgrade read-only database from version 7 to 5: /data/data/com.android.deskclock/databases/alarms.db
E/AndroidRuntime( 2471):	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
E/AndroidRuntime( 2471):	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
E/AndroidRuntime( 2471):	at android.app.ActivityThread.access$600(ActivityThread.java:123)
E/AndroidRuntime( 2471):	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
E/AndroidRuntime( 2471):	at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime( 2471):	at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime( 2471):	at android.app.ActivityThread.main(ActivityThread.java:4424)
E/AndroidRuntime( 2471):	at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 2471):	at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime( 2471):	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787)
E/AndroidRuntime( 2471):	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:554)
E/AndroidRuntime( 2471):	at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime( 2471): Caused by: android.database.sqlite.SQLiteException: Can't upgrade read-only database from version 7 to 5: /data/data/com.android.deskclock/databases/alarms.db
E/AndroidRuntime( 2471):	at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:244)
E/AndroidRuntime( 2471):	at com.android.deskclock.AlarmProvider.query(AlarmProvider.java:72)
E/AndroidRuntime( 2471):	at android.content.ContentProvider$Transport.query(ContentProvider.java:178)
E/AndroidRuntime( 2471):	at android.content.ContentResolver.query(ContentResolver.java:316)
E/AndroidRuntime( 2471):	at com.android.deskclock.Alarms.getAlarmsCursor(Alarms.java:135)
E/AndroidRuntime( 2471):	at com.android.deskclock.AlarmClock.onCreate(AlarmClock.java:199)
E/AndroidRuntime( 2471):	at android.app.Activity.performCreate(Activity.java:4465)
E/AndroidRuntime( 2471):	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
E/AndroidRuntime( 2471):	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
E/AndroidRuntime( 2471):	... 11 more
W/ActivityManager( 247): Force finishing activity com.android.deskclock/.AlarmClock

I went to /data/data/com.android.deskclock/databases and mv'ed the problematic alarms.db to alarms.db.backup and the problem was gone. Apparently, CM9 does not like the format in which CM7.1 stores information about alarms. Thought that this might help somebody else who's in my situation, as there's a workaround for this bug.